Z
ZHANK
编程在线教程Python 教程数字与数学运算
基础入门

数字与数学运算

数值类型、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

小结

  1. int float 两种数字类型,注意浮点精度
  2. math 数学函数,random 随机数
  3. bin oct hex 进制转换
  4. f-string 格式化数字:千分位、小数位、百分比

小练习

  1. 生成 6 个 1~33 之间的不重复随机数
  2. 计算圆面积(πr²)
  3. 把 1024 转成二进制、八进制、十六进制

💬 下一章函数进阶——lambda、map、filter 与装饰器。