1. Python数据类型转换详解
1.1 Python核心数据类型解析
Python作为一门动态类型语言,其数据类型系统既灵活又强大。理解这些基础数据类型是进行有效数据转换的前提:
- 数值类型:包括整型(int)、浮点型(float)和复数(complex)。整型没有大小限制,浮点型遵循IEEE 754标准
- 布尔类型:实际上是整型的子类,True对应1,False对应0
- 序列类型:
- 字符串(str):不可变的Unicode字符序列
- 列表(list):可变的元素集合
- 元组(tuple):不可变的元素集合
- 映射类型:字典(dict) - 键值对集合
- 集合类型:set(可变)和frozenset(不可变)
注意:Python中所有数据类型都是对象,变量只是对对象的引用。理解这点对避免数据类型转换时的常见错误至关重要。
1.2 数据类型转换方法深度剖析
1.2.1 显式类型转换函数
| 函数 | 行为说明 | 典型应用场景 |
|---|---|---|
| int(x) | 将x转换为整数,x可以是浮点数、布尔值或数字字符串 | 用户输入处理、数学计算 |
| float(x) | 将x转换为浮点数,接受整型、布尔值、数字字符串 | 科学计算、金融数据处理 |
| str(x) | 返回对象的字符串表示,几乎所有Python对象都支持 | 日志输出、字符串拼接 |
| eval(str) | 执行字符串中的Python表达式,返回执行结果 | 动态代码执行、配置解析 |
| list(s) | 将可迭代对象s(如字符串、元组、集合)转换为列表 | 需要修改序列内容时 |
| tuple(s) | 将可迭代对象s转换为元组 | 创建不可变序列 |
| set(s) | 将可迭代对象s转换为集合,自动去重 | 快速去重、集合运算 |
1.2.2 类型转换实战案例
案例1:用户输入处理
python复制# 安全处理用户输入的数字
while True:
user_input = input("请输入您的年龄:")
try:
age = int(user_input)
if age < 0:
print("年龄不能为负数!")
continue
break
except ValueError:
print("请输入有效的整数年龄!")
print(f"您输入的年龄是:{age}")
案例2:浮点数精度处理
python复制from decimal import Decimal
# 直接浮点运算会产生精度问题
print(0.1 + 0.2) # 输出:0.30000000000000004
# 使用Decimal解决精度问题
print(Decimal('0.1') + Decimal('0.2')) # 输出:0.3
案例3:eval的高级用法
python复制imp
