在Python编程中,我们经常需要处理不同类型的数据,比如用户输入的数字、从文件中读取的文本等。这些数据可能以不同的类型呈现,而有时候我们需要将它们转换成另一种类型来进行计算或处理。这时候,变量类型转换就派上用场了。Python提供了简单的内置函数,可以轻松实现int(整数)、str(字符串)和float(浮点数)之间的转换。
一、常见基本类型回顾¶
我们先回顾三种最基础的数据类型:
- int(整数):没有小数点的数字,例如 123、-456。
- str(字符串):由字符组成的序列,用单引号或双引号包围,例如 "hello"、'123'。
- float(浮点数):带小数点的数字,例如 3.14、-0.5。
二、int 类型的转换方法¶
1. int 转 str¶
使用 str() 函数,可以将整数转换为字符串形式。转换后,数字会变成字符序列。
示例:
a = 100 # 定义一个整数变量
b = str(a) # 将整数转为字符串
print(b) # 输出:'100'
print(type(b)) # 输出:<class 'str'> # 验证类型已变为字符串
2. int 转 float¶
使用 float() 函数,可以将整数转换为浮点数(整数会自动添加小数点和 .0)。
示例:
a = 5 # 整数变量
b = float(a) # 转为浮点数
print(b) # 输出:5.0
print(type(b)) # 输出:<class 'float'>
三、str 类型的转换方法¶
1. str 转 int¶
使用 int() 函数,可以将字符串转换为整数,但字符串必须是纯数字(不含小数点或字母),否则会报错。
正确示例:
str_num = "123" # 纯数字字符串
int_num = int(str_num) # 转换为整数
print(int_num) # 输出:123
print(type(int_num)) # 输出:<class 'int'>
错误示例(转换失败):
str_num = "12.3" # 含小数点,无法转int
int_num = int(str_num) # 报错:ValueError: invalid literal for int() with base 10: '12.3'
str_num = "abc" # 含字母,无法转int
int_num = int(str_num) # 报错:ValueError: invalid literal for int() with base 10: 'abc'
2. str 转 float¶
使用 float() 函数,可以将字符串转换为浮点数。字符串可以是纯整数(如 "123")或带小数点的数字(如 "12.3")。
示例:
str_num1 = "456"
float_num1 = float(str_num1)
print(float_num1) # 输出:456.0
str_num2 = "78.9"
float_num2 = float(str_num2)
print(float_num2) # 输出:78.9
四、float 类型的转换方法¶
1. float 转 int¶
使用 int() 函数,可以将浮点数转换为整数,但会直接截断小数部分(不是四舍五入)。
示例:
a = 3.9 # 浮点数
b = int(a) # 截断小数部分
print(b) # 输出:3
a = 5.0 # 整数形式的浮点数
b = int(a)
print(b) # 输出:5
2. float 转 str¶
使用 str() 函数,可以将浮点数转换为字符串,保留原有的数字形式(包括小数点)。
示例:
a = 6.28 # 浮点数
b = str(a) # 转换为字符串
print(b) # 输出:'6.28'
print(type(b)) # 输出:<class 'str'>
五、常见问题与注意事项¶
-
转换失败的原因:如果字符串中包含非数字字符(如字母、特殊符号),转换会抛出
ValueError。例如int("12a3")或float("abc")都会报错。 -
转换前检查:不确定字符串是否能安全转换时,可以先用
try-except捕获错误,避免程序崩溃。
示例(错误处理):
str_num = "12.3"
try:
int_num = int(str_num)
print("转换成功:", int_num)
except ValueError:
print("转换失败!字符串无法转为整数")
# 输出:转换失败!字符串无法转为整数
六、总结¶
Python类型转换通过 int()、str() 和 float() 三个内置函数实现,核心是明确转换规则:
- int ↔ str:字符串必须是纯数字(int 转 str 简单无风险)。
- str → float:字符串可含小数点,更灵活。
- float → int:会截断小数部分,需注意结果是否符合预期。
多练习不同场景的转换(如用户输入处理、数值计算),就能熟练掌握这些基础技巧,避免因类型不匹配导致的错误。