1、类型转换
1.1 含义
在Python中,类型转换是将一种数据类型的值转换为另一种数据类型的过程。Python提供了几种内置函数来支持数据类型的转换。
(1)int(x):转换为整型数据
# 示例1 print(int(1.2)) print(int(1.99)
# 示例2
data = int("123")
print(data, type(data))# 示例3
print(int('1a')) # ValueError: invalid literal for int() with base 10: '1a'
print(int("-12"))
print(int("-1.2"))# 示例4 print(int([1, 2, 3])) # TypeError: int() argument must be a string, a bytes-like object or a real number, not 'list'
复合的数据类型无法转换为整型、浮点型
(2)float(x):转换为浮点型数据
# 示例1 print(float(11)) print(float(-11)) print(round(-11.0, 2)) # round(数, 保留的位数)
# 示例2
data = float("12")
print(data, type(data))# 示例3
print(float("1.a")) # ValueError: could not convert string to float: '1.a'# 示例4 # 需求:-11 保留2 位小数 data = round(-11.0, 2) # 没有实现保留2位小数: print(data)
# 示例5
# 精度丢失解决方案:借助于decimal模块
from decimal import Decimal, getcontext, Context
ctx = Context(prec=3) # 创建一个上下文对象,设置精度为3位
data = ctx.create_decimal('-11').quantize(ctx.create_decimal('0.00'))
print(data
getcontext().prec = 1
print(Decimal(0.1) + Decimal(0.2))(3)bool(x):转换为布尔型数据
几乎所有的值都可以被转换为布尔值。
被视为False的值:0、0.0、False、0j、None、''、[]、{}、()、set()
# 示例
print(bool(500))
print(bool(-500))
print(bool(0))
print(bool(0.23456))
print(bool(-0.23456))
print(bool(0.0))
print(bool(None))
print(bool(' '))
print(bool('xiaobai'))
print(bool(''))
print(bool([]))
print(bool([1, 2]))
print(bool(()))
print(bool((1, 2, 3)))
print(bool([()]))
print(bool(([])))
print(bool(([],)))(4)str(x):转换为字符串类型数据
# 示例 data = [1, 2, 3] data_str = str(data) print(data_str, type(data_str))
(5)eval(str):执行字符串表达式,并返回表达式的值
# 示例1
print(1 + 1)
print('1' + '1')
print(eval('1 + 1')) # '1 + 1' ==> 1 + 1 ==> 2# 示例2
x = 10
y = 8
print(eval('x + y')) # 'x + y' ==> x + y ==> 10 + 8 = 18# 示例3
print(eval('[1, 2, 3, 4][2]'))# 示例4
xiaobai = 124
print(eval('xiaobai')) # xiaobai# 示例5
li = [1, 2, 3, 4]
print(eval(input("请输入:")))(6)list(可迭代对象):转换为列表类型数据
(7)tuple(可迭代对象):转换为元组类型数据
(8)set(可迭代对象):转换为集合类型数
# 示例1 data = range(1, 11) print(list(data)) print(tuple(data)) print(set(data))
# 示例2 li = [1, 2, 3] print(tuple(li)) print(set(li))
# 示例3 tup = (1, 2, 3, 4) print(list(tup)) print(set(tup))
# 示例4
s = {'a', 'b', 'c'}
print(list(s))
print(tuple(s))(9)dict(x):转换为字典型数据
主要用于创建新的字典对象,并不直接用于类型转换
# 示例1
data = dict(name='bingbing', age=18) # 变量名 = 值 ==》 {'变量名': 值}
print(data)# 示例2
# 对于直接的类型转换,我们通常是指将一个结构化的数据类型(如包含键值对信息的类型)转换为字典。
li = [('a', 1), ('b', 2), ('c', 3)]
print(dict(li))# 示例3 li = [['a', 1], ['b', 2], ['c', 3]] print(dict(li))
# 示例4
print(int('-1.2')) # ValueError: invalid literal for int() with base 10: '-1.2'
print(float('1'))著作权归文章作者所有。 未经作者允许禁止转载!