38、类型转换

小白量化 2025-12-09 16:39:55 34 举报

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'))


量化小白,从0开始学量化! 1

著作权归文章作者所有。 未经作者允许禁止转载!

最新回复 ( 0 )
发新帖
0
DEPRECATED: addslashes(): Passing null to parameter #1 ($string) of type string is deprecated (/data/user/htdocs/xiunophp/xiunophp.min.php:48)