数据类型转换(Type Conversion)
在 Python 中,数据类型转换(Type Conversion)分为和。隐式转换是 Python 自动完成的,通常发生在不丢失精度的情况下。intfloatint()将其他类型转换为整数。
·
在 Python 中,数据类型转换(Type Conversion)分为 隐式转换 和 显式转换。以下是详细讲解:
一、隐式类型转换
隐式转换是 Python 自动完成的,通常发生在不丢失精度的情况下。例如:
# 隐式转换示例
int_num = 10 # 整数
float_num = 2.5 # 浮点数
result = int_num + float_num
print(result) # 12.5
print(type(result)) # <class 'float'>
- 规则:小范围类型(如
int)自动转换为大范围类型(如float)。 - 优点:方便且安全,但不能显式控制。
二、显式类型转换
显式类型转换需要使用内置函数完成,主要有以下几种常用情况:
1. 转换为整数:int()
将其他类型转换为整数。
用法:
- 浮点数会取整(舍去小数部分)。
- 字符串需表示数字(支持十进制、二进制等格式)。
- 布尔值中
True转为1,False转为0。
示例:
print(int(3.9)) # 3
print(int("10")) # 10
print(int(True)) # 1
print(int(False)) # 0
# print(int("abc")) # 抛出 ValueError
2. 转换为浮点数:float()
将其他类型转换为浮点数。
用法:
- 整数直接转为浮点数。
- 字符串需表示数字。
- 布尔值
True转为1.0,False转为0.0。
示例:
print(float(5)) # 5.0
print(float("3.14")) # 3.14
print(float(True)) # 1.0
print(float(False)) # 0.0
3. 转换为字符串:str()
将其他类型转换为字符串。
用法:
- 所有类型都可以转换为字符串。
示例:
print(str(100)) # "100"
print(str(3.14)) # "3.14"
print(str(True)) # "True"
print(str([1, 2, 3])) # "[1, 2, 3]"
4. 转换为布尔值:bool()
将其他类型转换为布尔值。
转换规则:
- 数值类型:
0和0.0转为False,其他为True。 - 容器类型:空容器(如空列表、空字符串)为
False,非空为True。
示例:
print(bool(0)) # False
print(bool(1)) # True
print(bool("")) # False
print(bool("Hello")) # True
print(bool([])) # False
print(bool([1, 2, 3])) # True
5. 转换为容器类型
-
列表:
list()
转换为列表类型。print(list("abc")) # ['a', 'b', 'c'] print(list((1, 2, 3))) # [1, 2, 3] -
元组:
tuple()
转换为元组类型。print(tuple("abc")) # ('a', 'b', 'c') print(tuple([1, 2, 3])) # (1, 2, 3) -
集合:
set()
转换为集合类型(会去重)。print(set("aabbcc")) # {'a', 'b', 'c'} print(set([1, 2, 2, 3])) # {1, 2, 3} -
字典:
dict()
转换为字典类型(需提供键值对)。print(dict([("a", 1), ("b", 2)])) # {'a': 1, 'b': 2}
6. 转换为字节:bytes()
将字符串或其他类型转换为字节类型。
示例:
print(bytes("hello", "utf-8")) # b'hello'
print(bytes([72, 101, 108, 108, 111])) # b'Hello'
三、注意事项
-
转换失败时会抛出异常:
print(int("abc")) # ValueError: invalid literal for int() -
不支持直接转换的类型需要中间步骤:
比如将列表转换为整数,需要先转换为字符串,再转整数。lst = [1, 2, 3] print(int("".join(map(str, lst)))) # 123 -
None的处理:None转换为布尔值是False,不能直接转换为其他类型。
总结:在 Python 中,数据类型转换灵活多样,但需要根据实际场景选择合适的方式,避免因类型不匹配导致的错误。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)