带你快速学习Python数据类型转换
1.数据类型转换原因
-
在 Python 中不同的数据类型在进行运算时,运算规则不一样,所有需要进行数据类型转换
2.其他数据类型转换为整型
-
int(x, base=10) 函数
-
第一个参数:x 表示要转换的数据
-
第二个参数:base 表示的时进制数,默认值是10,base表示将前面的参数 x 当做几进制进行转换
age = input('请输你的年龄:')
print(age)# 需求:将 age 变量的值 加 10
# 报错:TypeError: can only concatenate str (not "int") to str,原因 input() 函数接收的参数类型是字符串
# print(age + 10)
# 在 python 中,字符串类型和数字类型不能直接进行数学运算
print(type(age))
print(type(int(age)))
print(int(age) + 10)
-
int() 函数中,base 参数的介绍
str1 = "12"
print(int(str1))
# 表示将字符串 "12" 转换为整型,并且以十进制显示
print(int(str1, base=10))
# 表示将字符串 "12" 转换为整型,并且以十六进制显示
print(int(str1, base=16))
3.其他数据类型转换为字符串
-
str(x) 函数:将其他数据类型转换为字符串
-
参数:x 表示要转换的数据
num = 12
num1 = 87
print(num + num1)
print(type(num))
print(type(num1)) # 输出结果为:99
-
在 python 中的字符串类型,使用 + 表示将字符串进行拼接
num = 12
num1 = 87
str1 = str(num)
str2 = str(num1)
print(type(str1))
print(type(str2))
print(str1 + str2) # 输出结果为:1287
4.其他数据类型转换为浮点型
-
float(x) 函数:将其他数据类型转换为浮点型
-
参数:x 表示要转换的数据
float1 = "12.34"
print(type(float1))
# 报错:TypeError: can only concatenate str (not "int") to str
# print(float1 + 10)
float2 = float(float1)
print(type(float2))
print(float2 + 10) # 输出结果为:22.34# 报错:ValueError: could not convert string to float: 'hello123'
float3 = "hello123"
print(float(float3))
5.其他数据类型转换为布尔型
-
bool(x) 函数:将其他数据类型转换为布尔类型,如果没有参数,返回 False
-
参数:x 表示要转换的数据
-
Python 中的布尔类型主要有两个:True 和 False
-
在 Python 中定义的整型、浮点型、字符串、列表、元组、字典和集合,只要不是空都返回 True
num1 = 100
float1 = 9.54
str1 = "hello"
list1 = [23, 54, 53, 'apple']
tuple1 = (12, 43, 56, 74, 'pig')
dict1 = {'name':'tfos', 'age':12}
set1 = {12, 43, 45.4}print(bool(num1)) # True
print(bool(float1)) # True
print(bool(str1)) # True
print(bool(list1)) # True
print(bool(tuple1)) # True
print(bool(dict1)) # True
print(bool(set1)) # True
-
在 Python 中,0、0.0、空字符串、空列表、空元组、空字典、空集合、None这些数据类型转换为 bool 类型全部为 False
num2 = 0
float2 = 0.0
str2 = ""
list2 = []
tuple2 = ()
dict2 = {}
set2 = set()
none1 = None
str3 = " " # 当字符串中有空格,表示该字符串不是空字符串print(bool(num2)) # False
print(bool(float2)) # False
print(bool(str2)) # False
print(bool(list2)) # False
print(bool(tuple2)) # False
print(bool(dict2)) # False
print(bool(set2)) # False
print(bool(none1)) # False
print(bool(str3)) # True
-
隐式类型转换:主要是用于 if、if...else等条件表达式中
print(3 > 2) # True
print(98 < 89) # Falseif 3 > 2:print('hello world!')if 98 < 89:print('dog')