Python 数字
Python 数字
Section titled “Python 数字”数字数据类型用于存储数值。Python 支持多种数字类型。它们是不可变的(immutable),这意味着改变数字值的操作实际上会创建一个新的数字对象。
数字对象通过简单地将数值赋给变量来创建:
count = 100 # 整数pi_approx = 3.14 # 浮点数scientific = 2.5e2 # 科学计数法表示的浮点数 (2.5 * 10^2 = 250.0)complex_num = 1 + 2j # 复数可以使用 del 语句删除对数字对象的引用(如果没有其他引用存在,则允许其被垃圾回收):
del countdel pi_approx, scientific # 删除多个对象Python 的主要数值类型
Section titled “Python 的主要数值类型”int(Integer): 表示正负整数,具有无限精度(任意大小)。Python 自动处理大整数。示例:10,-25,0,12345678901234567890。float(Floating-Point Number): 表示实数,包括带小数点或使用指数表示法(e或E)的数字。基于 IEEE 754 标准(通常为 64 位双精度)。示例:3.14,-0.001,1.0,2.5e2(即 250.0),1.6e-19。complex(Complex Number): 表示具有实部和虚部的数字,写为a + bj,其中a(实部)和b(虚部)是浮点数,j(或J)表示 -1 的平方根。示例:3 + 4j,2j,-5.1 + 0j,1.2 - 3.4J。
注意: Python 2 中的单独 long 类型已在 Python 3 中合并到 int 中。整数现在自动处理任意精度。
| int | float | complex |
|---|---|---|
10 | 0.0 | 3.14j |
100 | 15.20 | 45.J |
-786 | -21.9 | 9.322e-36j |
0 | 32.3e18 | .876j |
9876543210987654321 | -90. | -.6545+0J |
-500 | -32.54e100 | 3e+26J |
0b101 (二进制 5) | 70.2E-12 | 4.53e-7j |
0o17 (八进制 15) | float('inf') | complex(2, -3) |
0xFF (十六进制 255) | float('-inf') | complex('1+2j') |
数字类型转换
Section titled “数字类型转换”Python 在操作过程中会自动在不同类型之间转换数字(例如,int + float 结果为 float)。您也可以使用内置函数显式转换类型:
int(x): 将x转换为整数。对于浮点数,它会向零截断。对于字符串,x必须表示一个整数(可选指定进制:int('FF', 16))。float(x): 将x转换为浮点数。适用于整数和兼容的字符串。complex(real [,imag]): 创建一个复数。real可以是整数、浮点数或字符串。imag(可选)必须是数字。complex('1+2j')也适用。
print(int(3.9)) # 输出: 3print(int("101", 2)) # 输出: 5 (二进制转整数)print(float(5)) # 输出: 5.0print(float("-1.5e2")) # 输出: -150.0print(complex(3, -4)) # 输出: (3-4j)print(complex("5-6j")) # 输出: (5-6j)数学函数 (来自 math 模块)
Section titled “数学函数 (来自 math 模块)”Python 的 math 模块提供了许多常用数学函数的访问权限。您需要先导入它(import math)。
| 函数 | 描述 |
|---|---|
math.fabs(x) | 返回 x 的绝对值,作为浮点数。 |
abs(x) | 内置函数,返回绝对值(如果 x 是 int 则返回 int,如果 x 是 float 则返回 float)。 |
math.ceil(x) | 返回 x 的上限(大于或等于 x 的最小整数)。 |
math.floor(x) | 返回 x 的下限(小于或等于 x 的最大整数)。 |
math.exp(x) | 返回 e 的 x 次幂 (ex)。 |
math.log(x [, base]) | 返回以给定 base 为底的 x 的对数。如果省略 base,则返回自然对数(以 e 为底)。 |
math.log10(x) | 返回以 10 为底的 x 的对数。 |
max(x1, x2, ...) | 内置函数,返回其参数中的最大值。 |
min(x1, x2, ...) | 内置函数,返回其参数中的最小值。 |
math.modf(x) | 将 x 的小数部分和整数部分作为元组 (frac, int) 返回。两部分与 x 具有相同的符号。整数部分作为浮点数返回。 |
pow(x, y) | 内置函数,返回 x 的 y 次幂(x**y)。对于整数 x,它比 math.pow 更精确。 |
math.pow(x, y) | 返回 x 的 y 次幂。总是返回浮点数。 |
round(x [, n]) | 内置函数,将 x 四舍五入到 n 位小数。半数向上取整到最近的偶数(例如,round(2.5) 是 2,round(3.5) 是 4)。 |
math.sqrt(x) | 返回 x 的平方根(对于 x >= 0)。 |
注意: Python 2 中的 cmp(x, y) 函数已被移除。请改用比较运算符(<, >, == 等)。
随机数函数 (来自 random 模块)
Section titled “随机数函数 (来自 random 模块)”random 模块提供了生成伪随机数的函数,在模拟、游戏、测试和抽样中很有用。
| 函数 | 描述 |
|---|---|
random.choice(seq) | 从非空序列(列表、元组、字符串)中返回一个随机元素。 |
random.randrange(stop) 或 randrange(start, stop [, step]) | 从 range(start, stop, step) 中返回一个随机选择的元素。 |
random.random() | 返回一个随机浮点数 r,满足 0.0 <= r < 1.0。 |
random.seed(a=None, version=2) | 初始化随机数生成器。用于获得可复现的结果。 |
random.shuffle(lst) | 原地打乱列表 lst 的元素。返回 None。 |
random.uniform(a, b) | 返回一个随机浮点数 r,对于 a <= b 满足 a <= r <= b,对于 b < a 满足 b <= r <= a。 |
random.randint(a, b) | 返回一个随机整数 n,满足 a <= n <= b。 |
三角函数 (来自 math 模块)
Section titled “三角函数 (来自 math 模块)”math 模块也包含标准三角函数。角度通常期望使用弧度。
| 函数 | 描述 |
|---|---|
math.acos(x) | 返回 x 的反余弦(弧度)。(x 必须在 -1 到 1 之间)。 |
math.asin(x) | 返回 x 的反正弦(弧度)。(x 必须在 -1 到 1 之间)。 |
math.atan(x) | 返回 x 的反正切(弧度)。 |
math.atan2(y, x) | 返回 atan(y / x)(弧度)。正确处理象限。 |
math.cos(x) | 返回 x 弧度的余弦值。 |
math.hypot(*coordinates) | 返回欧几里得范数,sqrt(x*x + y*y + ...)。 |
math.sin(x) | 返回 x 弧度的正弦值。 |
math.tan(x) | 返回 x 弧度的正切值。 |
math.degrees(x) | 将角度 x 从弧度转换为度。 |
math.radians(x) | 将角度 x 从度转换为弧度。 |
数学常量 (来自 math 模块)
Section titled “数学常量 (来自 math 模块)”math 模块定义了重要的常量:
| 常量 | 描述 |
|---|---|
math.pi | 数学常数圆周率(π ≈ 3.14159…) |
math.e | 数学常数 e(e ≈ 2.71828…) |
math.tau | 数学常数 tau(τ = 2π ≈ 6.28318…) |
math.inf | 浮点正无穷大。 |
math.nan | 浮点数“非数字”(Not a Number)。 |