1. 为什么需要数据类型转换?
在Python全栈开发中,数据类型转换是最基础但极其重要的操作。想象你正在开发一个电商网站的后台系统:用户输入的价格是字符串"199.9",而计算优惠需要数字类型;或者从数据库读取的ID是整数123,但生成订单号时需要拼接成字符串"ORDER_123"。这些场景每天都在真实项目中发生。
Python作为动态类型语言,虽然变量不需要声明类型,但不同类型间的操作往往需要显式转换。最常见的三类转换场景:
- 用户输入处理:所有表单输入、命令行参数默认都是字符串,需要转换为目标类型才能计算
- 数据存储与传输:JSON序列化时数字会变成字符串,数据库查询结果可能需要类型转换
- API接口交互:不同系统间数据交换时经常需要统一数据类型
关键认知:类型转换不是简单的语法练习,而是真实工程中数据流处理的关键环节。错误的转换会导致计算错误、系统崩溃甚至安全漏洞。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 字符串与数字的互转方法
2.1 字符串转数字
Python提供了三种主要方法:
python复制# 方法1:int()函数
price = "299"
int_price = int(price) # 输出: 299 (整数)
# 方法2:float()函数
rating = "4.5"
float_rating = float(rating) # 输出: 4.5 (浮点数)
# 方法3:eval()函数(危险!慎用)
discount = "0.85"
eval_discount = eval(discount) # 输出: 0.85
安全警示:
- 使用
eval()存在代码注入风险,永远不要用eval()处理用户输入 - 推荐使用
int()和float()的安全转换模式:
python复制def safe_convert(value, default=0):
try:
return float(value) if '.' in value else int(value)
except ValueError:
return default
2.2 数字转字符串
同样有三种主流方式:
python复制# 方法1:str()函数
age = 25
str_age = str(age) # "25"
# 方法2:格式化字符串
pi = 3.14159
format_pi = f"{pi:.2f}" # "3.14"
# 方法3:repr()函数
complex_num = 1+2j
repr_num = repr(complex_num) # "(1+2j)"
性能对比:
- 小规模数据:
f-string≈str()> `repr()
