Python学习——【1.2】数据类型、数据类型转换
文章目录
- 【1.2】数据类型、数据类型转换
- 一、数据类型
- (一)使用type()查看数据类型
- (二)变量无类型而数据有类型
- 二、数据类型的转换
- (一)为什么要转换类型
- (二)常见的转换语句
【1.2】数据类型、数据类型转换
一、数据类型
(一)使用type()查看数据类型
数据类型
在学习字面量的时候,我们了解到:数据是有类型的。
目前在入门阶段,我们主要接触如下三类数据类型:string
(字符串类型)、int
(整型)、float
(浮点型)。
type()语句
我们可以通过type()
语句来得到数据的类型,语法:
type(被查看类型的数据)
。
# 字面量数据
print(type("你好"))
print(type("666"))
print(type(13.14))
# 变量数据
name = "张三"
name_type = type(name)
print(name_type)
输出结果如下:
<class 'str'>
<class 'str'>
<class 'float'>
<class 'str'>
(二)变量无类型而数据有类型
变量有类型吗?
我们通过type(变量)
可以输出类型,这是查看“变量的类型”还是“数据的类型”?
本质上来说,它查看的是:变量存储的数据的类型。
变量无类型,但是变量存储的数据有类型。
如何理解:
比如有一个箱子,箱子里面放入足球,那它就是足球箱子;箱子里面放入篮球,那它就是篮球箱子。——但是,箱子是足球、篮球吗?
同理,我们有一个变量
a
,把字符串赋值给a,那它就是字符串类型;把整数赋值给a,那它就是整数类型。我们说的类型也是a中所存储的数据的类型,而非变量a自身的类型。但是在实际中,我们会说“a = "zhangsan"
,a是字符串变量”,但是从本质上讲,它指的其实不是“变量a是字符串”,而是“变量a存储了字符串”。
总之,记住这个结论:在Python中,变量是没有类型的,但是变量存储的数据是有类型的。
二、数据类型的转换
(一)为什么要转换类型
数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等,我们为什么要转换它们呢?
数据类型转换,将会是我们以后经常使用的功能,如:
- 从文件中读取的数字,默认是字符串,我们需要转换成数字类型;
- 后续学习的
input()
语句,默认结果是字符串,若需要数字也要转换; - 将数字转换成字符串用以写到外部系统;
- 等等。
(二)常见的转换语句
语句(函数) | 说明 |
---|---|
int(x) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
str(x) | 将对象x转换为字符串 |
注意:
同之前学习的
type()
语句一样,这三个语句,都是带有结果的(有返回值的)。我们可以用print()
直接输出,也可以用变量存储结果值。
字符串与数字转换示例
# 将数字类型转换成字符串
num_str = str(11)
print(type(num_str), num_str)
float_str = str(11.345)
print(type(float_str), float_str)
# 将字符串转换成数字
num = int("11")
print(type(num), num)
num2 = float("11.345")
print(type(num2), num2)
输出结果如下:
<class 'str'> 11
<class 'str'> 11.345
<class 'int'> 11
<class 'float'> 11.345
注意:
万物皆可转字符串,因为字符串无非就是给中文/英文数字/符号……添加上一对双引号,所以无脑转即可。
但是反过来,字符串转其他类型,则必须保证字符串的内容是合法的、能转的。
# 错误示例,想要将字符串转换成数字,必须要求字符串里的内容是数字
num3 = int("Hello")
print(type(num3), num3)
整型与浮点型转换示例
# 整数转浮点数
float_num = float(11)
print(type(float_num), float_num)
# 浮点数转整数
int_num = int(11.345)
print(type(int_num), int_num)
输出结果如下:
<class 'float'> 11.0
<class 'int'> 11
注意:
整数转浮点数,转换后的浮点数会带小数点。如
11
转换得到11.0
。浮点数转整数,是可以转换的,但转换后小数部分精度丢失,即小数点及小数点后的数据直接丢掉。(注意,并不是四舍五入)