在Python中,数字处理是编程中常见的操作,涵盖了基本算术运算、数值类型转换、数学函数应用、随机数生成等多个方面。以下是Python数字处理的核心内容及示例:
一、基本数值类型
Python内置的数值类型包括:
- 整数(
int
):无大小限制,支持任意精度。 - 浮点数(
float
):双精度64位,使用e
表示科学计数法(如3.14e2
表示314.0)。 - 复数(
complex
):使用a + bj
表示,如3 + 4j
。 - 布尔(
bool
):True
和False
,本质是整数的子类(True
=1,False
=0)。
# 示例
a = 1000000000000000000 # 任意大的整数
b = 3.14e2 # 浮点数
c = 3 + 4j # 复数
d = True # 布尔值
print(type(a)) # <class 'int'>
print(type(b)) # <class 'float'>
print(type(c)) # <class 'complex'>
print(type(d)) # <class 'bool'>
二、数值运算
Python支持丰富的数值运算:
# 基本运算
x = 10
y = 3
print(x + y) # 加法: 13
print(x - y) # 减法: 7
print(x * y) # 乘法: 30
print(x / y) # 除法: 3.333...
print(x // y) # 整除: 3
print(x % y) # 取余: 1
print(x ** y) # 幂运算: 1000
# 复合赋值
x += 1 # 等价于 x = x + 1
y *= 2 # 等价于 y = y * 2
# 绝对值、四舍五入
print(abs(-5)) # 绝对值: 5
print(round(3.1415, 2)) # 四舍五入保留2位小数: 3.14
三、数值类型转换
使用内置函数进行类型转换:
num_int = 10
num_float = 3.14
num_str = "5.6"
# 转为浮点数
print(float(num_int)) # 10.0
# 转为整数(直接截断小数部分)
print(int(num_float)) # 3
# 字符串转数值
print(float(num_str)) # 5.6
print(int(float(num_str))) # 5(先转float再转int)
四、数学函数与模块
Python的math
模块提供了大量数学函数:
import math
# 常用数学函数
print(math.sqrt(16)) # 平方根: 4.0
print(math.pow(2, 3)) # 幂运算: 8.0
print(math.sin(math.pi/2)) # 正弦函数: 1.0
print(math.log(100, 10)) # 对数: 2.0
print(math.ceil(3.2)) # 向上取整: 4
print(math.floor(3.9)) # 向下取整: 3
print(math.factorial(5)) # 阶乘: 120
# 常量
print(math.pi) # π: 3.141592653589793
print(math.e) # e: 2.718281828459045
五、随机数生成
使用random
模块生成随机数:
import random
# 随机浮点数 [0, 1)
print(random.random())
# 随机整数 [a, b]
print(random.randint(1, 10)) # 1到10之间的整数
# 随机选择元素
fruits = ["apple", "banana", "cherry"]
print(random.choice(fruits))
# 打乱列表顺序
random.shuffle(fruits)
print(fruits)
六、高级数值处理(科学计算)
对于大规模数值计算,推荐使用第三方库:
- NumPy:高性能数组计算。
- Pandas:数据处理与分析。
- SciPy:科学计算工具包。
# NumPy 示例
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr.mean()) # 均值: 3.0
print(arr.std()) # 标准差: 1.414...
print(arr * 2) # 元素级乘法: [2, 4, 6, 8, 10]
七、常见应用场景
- 格式化输出:
x = 3.14159
print(f"{x:.2f}") # 保留2位小数: 3.14
print(f"{x:e}") # 科学计数法: 3.141590e+00
- 处理溢出与精度问题:
# 大整数运算不会溢出
print(10**1000) # Python自动处理任意大整数
# 浮点数精度问题
a = 0.1 + 0.2
print(a) # 0.30000000000000004
# 使用 decimal 模块解决精度问题
from decimal import Decimal
a = Decimal('0.1') + Decimal('0.2')
print(a) # 0.3
总结
Python提供了丰富的数值处理能力,从基础运算到高级科学计算均能高效完成。对于日常编程,内置函数和模块(如math
、random
)已足够;对于复杂数据分析,推荐使用NumPy和Pandas等第三方库。