数字与数学运算
数值类型、math 模块、random 随机数、进制转换
数字与数学运算
Python 内置了丰富的数字类型。从简单算术到复杂科学计算,都有现成工具。
学完本章你将掌握: 数字类型、math/random 模块、进制转换、数字格式化。
一、整数与浮点数
python
a = 42 # int
b = 3.14 # float
c = 1_000_000 # 下划线分隔,更易读
d = 1.5e3 # 科学计数法 = 1500.0
print(type(a), type(b))
浮点数精度问题:
python
print(0.1 + 0.2) # 0.30000000000000004
print(0.1 + 0.2 == 0.3) # False!
print(round(0.1 + 0.2, 2)) # 0.3(用 round 处理)
⚠️ 这是所有语言的通病,不是 Python 的 bug。金融计算请用
decimal模块。
二、math 模块
python
import math
print(math.pi) # 3.14159...
print(math.sqrt(16)) # 4.0 平方根
print(math.ceil(3.1)) # 4 向上取整
print(math.floor(3.9)) # 3 向下取整
print(math.gcd(12, 18)) # 6 最大公约数
print(math.factorial(5)) # 120 阶乘
# 三角函数
print(math.sin(math.radians(30))) # 0.5
三、random 随机数
python
import random
print(random.randint(1, 100)) # 1~100 随机整数
print(random.random()) # 0~1 随机小数
items = ["A", "B", "C"]
print(random.choice(items)) # 随机选一个
random.shuffle(items) # 原地打乱
# 固定随机种子(调试用)
random.seed(42)
print(random.randint(1, 100)) # 每次运行都是 82
四、进制转换
python
n = 255
print(bin(n)) # '0b11111111'
print(oct(n)) # '0o377'
print(hex(n)) # '0xff'
# 反向转换
print(int("11111111", 2)) # 255
print(int("ff", 16)) # 255
五、数字格式化
python
print(f"{1000000:,}") # 1,000,000
print(f"{3.14159:.2f}") # 3.14
print(f"{0.856:.1%}") # 85.6%
print(f"{255:x}") # ff
小结
intfloat两种数字类型,注意浮点精度math数学函数,random随机数binocthex进制转换- f-string 格式化数字:千分位、小数位、百分比
小练习
- 生成 6 个 1~33 之间的不重复随机数
- 计算圆面积(πr²)
- 把 1024 转成二进制、八进制、十六进制
💬 下一章:函数进阶——lambda、map、filter 与装饰器。