1. Python 基本数据类型运算概述
Python作为一门动态类型语言,其数据类型系统看似简单却暗藏玄机。我在实际开发中见过太多因为对基本数据类型理解不透彻而导致的隐蔽bug。比如有一次团队花了三天排查一个金融计算错误,最后发现竟是浮点数精度问题;还有一次线上服务崩溃,原因是开发者在遍历列表时误删元素导致索引错乱。
Python的数据类型主要分为数值型(int, float, complex)、序列型(str, list, tuple)、映射型(dict)和集合型(set, frozenset)。每种类型都有其特定的运算规则和行为特征,理解这些细节是写出健壮代码的基础。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数值类型运算详解
2.1 整数与浮点数基础运算
Python的数值运算遵循一些基本原则:
- 整数与整数运算结果为整数(除法除外)
- 整数与浮点数运算结果为浮点数
- 复数运算保持复数类型
python复制# 基础运算示例
print(3 + 2) # 5 (int)
print(3.0 + 2) # 5.0 (float)
print(1j * 1j) # (-1+0j) (complex)
2.2 除法运算的三种形式
Python中有三种除法运算,新手最容易混淆:
- 真除法(/):总是返回浮点数
- 地板除(//):向负无穷方向取整
- 取模(%):余数符号与除数一致
python复制print(5 / 2) # 2.5
print(5 // 2) # 2
print(-5 // 2) # -3 (不是-2!)
print(5 % 2) # 1
print(-5 % 2) # 1 (因为余数符号与除数2一致)
2.3 浮点数精度问题与解决方案
浮点数在计算机中是以二进制形式存储的,这导致某些十进制小数无法精确表示:
python复制print(0.1 + 0.2 == 0.3) # False
print(0.1 + 0.2) # 0.30000000000000004
解决方案:
- 使用math.isclose()进行近似比较
- 对精度要求高的场景使用decimal模块
- 金融计算考虑使用专门的货币处理库
python复制import math
print(math.isclose(0.1 + 0.2, 0.3)) # True
from decimal import Decimal, getcontext
getcontext().prec = 6
print(Decimal('0.1') + Decimal('0.2') == Decimal('0.3')) # True
3. 字符串操作与陷阱
3.1 字符串基础操作
Python字符串是不可变序列,支持丰富的操作:
python复制s = "Python"
print(s + " Rocks!") # 拼接
pr
