数据类型转换
数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等
那么,我们为什么要转换它们呢?
数据类型转换,将会是我们以后经常使用的功能。
- 从文件中读取的数字,默认是字符串,我们需要转换成数字类型
- 后续学习的input()语句,默认结果是字符串,若需要数字也需要转换
- 将数字转换成字符串用以写出到外部系统
- 等等
python中提供数据类型转换有如下操作
把数据转换为整数类型
具体的操作是把数据转化为十进制格式的整数类型
操作:
int(数据)
场景:
对浮点数取整数部分
将字符串格式的整数数据转化为整数类型
要求:字符串中数据的格式是要满足十进制数据整数要求 【不满足就会报错】
如果字符串的内容格式是其他进制的 要转换为十进制 该如何操作????
不满足十进制格式会报错的原因是因为功能内部是按照十进制数据集在解析数据,相关转换其他进制的数据的,需要设置一下解析数据时的进制方式即可, 修改操作
int('数据', base=进制数)
a = int(3.14)
b = int("1")
print(type(a))
print(type(b))
把数据转换为浮点类型
操作:
float(数据)
场景:就是将字符串格式的数据转换为小数 【要求:字符串的内容必须得满足数学中正常数的要求】
a = float(3)
b = float("3.14")
print(type(a))
print(type(b))
把数据转换为字符串类型
操作:
str(数据)
可以把任意类型的数据转化为字符串类型,结果就是在原数据的外层加一个引号的衣服
str1 = str("1")
str2 = str("3.14")
str3 = str("字符串")
str4 = str("[1,2,3,4]")
print(type(str1))
print(type(str2))
print(type(str3))
print(type(str4))
把数据转换为布尔类型
操作:
bool(数据)
可以任意类型的数据转化为布尔类型,但是不同的数据有不同的转换规则:
对于整型和浮点型数据来说,规则是 非0即为True
对于容器型数据来说,规则是 非空容器即为True
空容器:数据对象是存在的,但是里面没有元素, 比如
''
,[]
,()
,{}
,set()
空对象None就是False
空对象和空容器不是一个意思, None 【连个对象都没有】, 空容器是有对象 但是是个空壳子
#PS: 需要注意Python和其他编程语言不一样,在其他语言中使用“+”进行字符串拼接时会自动转换为字符串类型,而Python仅允许字符串类型与字符串类型使用“+”拼接,非字符串类型无法使用“+”与字符串类型拼接
res1 = bool(1)
print(str(type(res1))+" "+str(res1))
res2 = bool(0)
print(str(type(res2))+" "+str(res2))
res3 = bool([1,2,3,4])
print(str(type(res3))+" "+str(res3))
res4 = bool([])
print(str(type(res4))+" "+str(res4))
res5 = bool(None)
print(str(type(res5))+" "+str(res5))
其他数据格式之间转换
方法 | 说明 |
---|---|
bin(其他进制的数据) | 其他进制的数据转化为二进制 |
oct(其他进制的数据) | 其他进制的数据转化为八进制 |
hex(其他进制的数据) | 其他进制的数据转化为十六进制 |
ord(字符) | 按照编码标准获取字符对应的十进制数据 |
chr(数据) | 按照编码标准获取十进制数据对应的字符 |