Python 数据类型转换
在编程过程中,我们经常需要在不同的数据类型之间进行转换。例如,从用户输入(总是字符串)中获取数字,或者将数字拼接到文本中。Python 提供了一系列内置函数来执行这些类型转换操作。
这种由程序员明确指定的类型转换称为显式类型转换。
常用转换函数
转换为整数: int()
int() 函数可以从浮点数或数字字符串创建一个整数。
从浮点数转换:会直接截断小数部分,而不是四舍五入。
pythonx = int(3.14) print(x) # 输出: 3 y = int(-5.9) print(y) # 输出: -5从字符串转换:字符串必须只包含整数数字。
pythonage_str = "25" age_int = int(age_str) print(age_int) # 输出: 25 # int("25.5") # 会引发 ValueError,因为包含小数点 # int("hello") # 会引发 ValueError,因为包含非数字字符
转换为浮点数: float()
float() 函数可以从整数或数字字符串创建一个浮点数。
python
print(float(10)) # 输出: 10.0
print(float("123.45")) # 输出: 123.45
print(float("-5")) # 输出: -5.0
# float("abc") # 会引发 ValueError转换为字符串: str()
str() 函数可以将几乎任何其他数据类型的对象转换为其字符串表示形式。
python
num = 100
pi = 3.14
my_list = [1, 2, 3]
print(str(num)) # 输出: '100'
print(str(pi)) # 输出: '3.14'
print(str(my_list))# 输出: '[1, 2, 3]'
# 常见用途:拼接字符串和数字
message = "My age is " + str(25)
print(message) # 输出: My age is 25转换为序列类型
转换为列表: list()
list() 函数可以将一个可迭代对象(如字符串、元组、集合)转换为列表。
python
my_str = "hello"
print(list(my_str)) # 输出: ['h', 'e', 'l', 'l', 'o']
my_tuple = (1, 2, 3)
print(list(my_tuple)) # 输出: [1, 2, 3]
my_set = {1, 2, 3}
print(list(my_set)) # 输出: [1, 2, 3] (顺序可能不同)转换为元组: tuple()
tuple() 函数可以将一个可迭代对象转换为元组。
python
my_list = [1, 2, 3]
print(tuple(my_list)) # 输出: (1, 2, 3)转换为集合: set()
set() 函数可以将一个可迭代对象转换为集合。注意,集合会自动去除重复的元素。
python
my_list = [1, 2, 2, 3, 3, 3]
print(set(my_list)) # 输出: {1, 2, 3}隐式类型转换
除了显式转换,Python 也会在某些情况下自动进行隐式类型转换。这通常发生在不同数字类型的运算中,Python 会将较低精度的类型“提升”为较高精度的类型,以避免数据丢失。
python
int_val = 5
float_val = 2.5
result = int_val + float_val # Python 自动将 int_val 转换为 float
print(result) # 输出: 7.5
print(type(result)) # 输出: <class 'float'>