Python3 数字(Number)知识点详解
编程小白必备的数字操作指南 – 用大白话讲解Python数字知识
数字类型
整数(int)
- 不带小数点的数字,如:10, -5, 1000
- Python中整数没有大小限制(内存允许范围内)
- 可以用下划线提高可读性:1_000_000
浮点数(float)
- 带小数点的数字,如:3.14, -0.5, 2.0
- 科学计数法:2.5e3 = 2500.0
- 精度问题:0.1 + 0.2 可能不等于 0.3(二进制浮点数问题)
复数(complex)
- 形式为 a + bj,其中a是实部,b是虚部
- 如:3+4j, -2j
# 整数示例
a = 10
b = -5
big_num = 10_000_000
# 浮点数示例
pi = 3.14159
temperature = -10.5
scientific = 1.23e-4 # 0.000123
# 复数示例
c = 3 + 4j
d = 5j
a = 10
b = -5
big_num = 10_000_000
# 浮点数示例
pi = 3.14159
temperature = -10.5
scientific = 1.23e-4 # 0.000123
# 复数示例
c = 3 + 4j
d = 5j
数字类型转换
显式转换
- int(x):将x转换为整数(直接去掉小数部分)
- float(x):将x转换为浮点数
- complex(x):将x转换为复数
隐式转换
- 整数和浮点数运算时,整数会自动转为浮点数
- 结果为浮点数:3 + 4.5 → 7.5
- 整数除法:Python3中 / 总是返回浮点数
# 显式类型转换
num_str = “123”
num_int = int(num_str) # 字符串转整数
num_float = float(“3.14”) # 字符串转浮点数
# 整数转浮点数
a = 10
b = float(a) # 10.0
# 浮点数转整数(会丢失小数部分)
pi_int = int(3.99) # 得到3,不是4!
# 隐式类型转换
result = 5 + 2.5 # 整数5自动转为5.0,结果为7.5
num_str = “123”
num_int = int(num_str) # 字符串转整数
num_float = float(“3.14”) # 字符串转浮点数
# 整数转浮点数
a = 10
b = float(a) # 10.0
# 浮点数转整数(会丢失小数部分)
pi_int = int(3.99) # 得到3,不是4!
# 隐式类型转换
result = 5 + 2.5 # 整数5自动转为5.0,结果为7.5
注意: 将字符串转换成数字时,字符串必须符合数字格式,否则会报错。例如 int(“hello”) 会导致 ValueError。
数学运算
基本算术运算符
运算符 | 含义 | 示例 | 结果 |
---|---|---|---|
+ | 加法 | 5 + 3 | 8 |
– | 减法 | 10 – 4 | 6 |
* | 乘法 | 7 * 3 | 21 |
/ | 除法(返回浮点数) | 10 / 3 | 3.333… |
// | 整除(向下取整) | 10 // 3 | 3 |
% | 取模(求余数) | 10 % 3 | 1 |
** | 幂运算 | 2 ** 3 | 8 |
运算优先级
- 括号() > 幂运算** > 乘* / 除// % > 加+ 减-
- 相同优先级从左到右计算(幂运算从右到左)
# 运算符示例
# 除法与整除
print(10 / 3) # 3.3333333333333335
print(10 // 3) # 3
print(-10 // 3) # -4(向下取整)
# 取模运算
print(10 % 3) # 1
print(10 % -3) # -2(符号与除数相同)
# 幂运算
print(2 ** 3) # 8
print(4 ** 0.5) # 2.0(平方根)
# 优先级示例
result = 3 + 4 * 2 ** 2 # 3 + 4*(4) = 3+16=19
# 除法与整除
print(10 / 3) # 3.3333333333333335
print(10 // 3) # 3
print(-10 // 3) # -4(向下取整)
# 取模运算
print(10 % 3) # 1
print(10 % -3) # -2(符号与除数相同)
# 幂运算
print(2 ** 3) # 8
print(4 ** 0.5) # 2.0(平方根)
# 优先级示例
result = 3 + 4 * 2 ** 2 # 3 + 4*(4) = 3+16=19
常用数字函数
数值函数
- abs(x):返回x的绝对值
- round(x, n):四舍五入,n为小数位数
- pow(x, y):返回x的y次方,等价于 x**y
- divmod(a, b):返回(a // b, a % b)
类型判断
- type(x):返回x的类型
- isinstance(x, int):检查x是否是整数
进制转换
- bin(x):将整数转换为二进制字符串
- oct(x):将整数转换为八进制字符串
- hex(x):将整数转换为十六进制字符串
# 数值函数示例
print(abs(-5)) # 5
print(round(3.14159, 2)) # 3.14
print(round(2.675, 2)) # 2.67(注意浮点数精度问题)
print(pow(2, 3)) # 8
print(divmod(10, 3)) # (3, 1)
# 类型判断示例
num = 10
print(type(num)) # <class ‘int’>
print(isinstance(3.14, float)) # True
# 进制转换示例
print(bin(10)) # ‘0b1010’
print(oct(10)) # ‘0o12’
print(hex(255)) # ‘0xff’
print(abs(-5)) # 5
print(round(3.14159, 2)) # 3.14
print(round(2.675, 2)) # 2.67(注意浮点数精度问题)
print(pow(2, 3)) # 8
print(divmod(10, 3)) # (3, 1)
# 类型判断示例
num = 10
print(type(num)) # <class ‘int’>
print(isinstance(3.14, float)) # True
# 进制转换示例
print(bin(10)) # ‘0b1010’
print(oct(10)) # ‘0o12’
print(hex(255)) # ‘0xff’
Math数学模块
- Python内置的数学模块,提供更多数学函数
- 使用前需要导入:import math
常用函数
- math.sqrt(x):平方根
- math.ceil(x):向上取整
- math.floor(x):向下取整
- math.factorial(x):阶乘
- math.gcd(a, b):最大公约数
- math.log(x, base):对数
- math.sin(x):正弦函数(x为弧度)
常量
- math.pi:圆周率π ≈ 3.14159
- math.e:自然常数e ≈ 2.71828
import math
# 数学函数示例
print(math.sqrt(16)) # 4.0
print(math.ceil(3.2)) # 4
print(math.floor(3.8)) # 3
print(math.factorial(5)) # 120
print(math.gcd(12, 18)) # 6
print(math.log(100, 10)) # 2.0
# 使用常量
radius = 5
area = math.pi * radius ** 2 # 计算圆面积
# 数学函数示例
print(math.sqrt(16)) # 4.0
print(math.ceil(3.2)) # 4
print(math.floor(3.8)) # 3
print(math.factorial(5)) # 120
print(math.gcd(12, 18)) # 6
print(math.log(100, 10)) # 2.0
# 使用常量
radius = 5
area = math.pi * radius ** 2 # 计算圆面积
随机数模块
- 生成随机数需要使用random模块
- 导入:import random
常用函数
- random.random():[0,1)之间的随机浮点数
- random.randint(a, b):[a,b]范围内的随机整数
- random.uniform(a, b):[a,b]范围内的随机浮点数
- random.choice(seq):从序列中随机选择一个元素
- random.shuffle(seq):将序列随机打乱
import random
# 生成随机浮点数
print(random.random()) # [0,1)之间,如0.548
# 生成随机整数
print(random.randint(1, 10)) # 1到10之间的整数
# 生成指定范围随机浮点数
print(random.uniform(2.5, 5.5)) # 2.5到5.5之间
# 从列表中随机选择
colors = [‘red’, ‘green’, ‘blue’]
print(random.choice(colors)) # 随机选择一个颜色
# 打乱列表顺序
cards = [‘A’, ‘K’, ‘Q’, ‘J’]
random.shuffle(cards)
print(cards) # 随机顺序,如[‘K’, ‘A’, ‘J’, ‘Q’]
# 生成随机浮点数
print(random.random()) # [0,1)之间,如0.548
# 生成随机整数
print(random.randint(1, 10)) # 1到10之间的整数
# 生成指定范围随机浮点数
print(random.uniform(2.5, 5.5)) # 2.5到5.5之间
# 从列表中随机选择
colors = [‘red’, ‘green’, ‘blue’]
print(random.choice(colors)) # 随机选择一个颜色
# 打乱列表顺序
cards = [‘A’, ‘K’, ‘Q’, ‘J’]
random.shuffle(cards)
print(cards) # 随机顺序,如[‘K’, ‘A’, ‘J’, ‘Q’]