简介
Python 通过其读取-求值-打印循环(REPL)为数学计算提供了一个交互式且强大的环境。本教程将探讨程序员和数据爱好者如何利用 Python 的内置数学功能和高级库来快速有效地执行复杂计算。
Python 通过其读取-求值-打印循环(REPL)为数学计算提供了一个交互式且强大的环境。本教程将探讨程序员和数据爱好者如何利用 Python 的内置数学功能和高级库来快速有效地执行复杂计算。
REPL 代表读取-求值-打印循环(Read-Eval-Print Loop),这是一个交互式编程环境,在其中你可以:
在 Ubuntu 22.04 上,你可以通过多种方式启动 Python REPL:
## 方法 1:标准 Python REPL
python3
## 方法 2:IPython(增强的交互式 shell)
ipython3
在 Python REPL 中,你可以立即进行数学计算:
## 加法
>>> 5 + 3
8
## 减法
>>> 10 - 4
6
## 乘法
>>> 6 * 7
42
## 除法
>>> 15 / 3
5.0
## 整数除法
>>> 17 // 5
3
## 取模
>>> 17 % 5
2
## 幂运算
>>> 2 ** 3
8
下划线 _ 存储最后打印的表达式:
>>> 5 + 3
8
>>> _ * 2
16
你可以链接多个表达式:
>>> x = 10
>>> y = 5
>>> x + y
15
## 方法 1:使用 exit() 函数
## 方法 2:键盘快捷键(Ctrl + D)
| 实践 | 描述 |
|---|---|
| 使用 Tab 补全 | 自动补全变量和方法 |
使用 dir() |
探索可用方法 |
使用 help() |
获取函数文档 |
LabEx 建议通过练习 REPL 来进行快速的 Python 实验和学习。
Python 支持标准的数学运算符:
## 加法
>>> 10 + 5
15
## 减法
>>> 20 - 8
12
## 乘法
>>> 6 * 7
42
## 除法
>>> 15 / 3
5.0
## 整除
>>> 17 // 5
3
## 取模
>>> 17 % 5
2
## 幂运算
>>> 2 ** 3
8
>>> import math
## 平方根
>>> math.sqrt(16)
4.0
## 三角函数
>>> math.sin(math.pi/2)
1.0
## 对数函数
>>> math.log(10)
2.302585092994046
## 复数运算
>>> (3 + 4j) * (2 - 1j)
(14 + 5j)
>>> abs(3 + 4j)
5.0
## 舍入
>>> round(3.7)
4
>>> round(3.2)
3
## 十进制精度
>>> from decimal import Decimal
>>> Decimal('1.1') + Decimal('2.2')
Decimal('3.3')
>>> import math
## 常见数学常数
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
| 运算 | 符号 | 示例 | 结果 |
|---|---|---|---|
| 加法 | + | 10 + 5 | 15 |
| 减法 | - | 20 - 8 | 12 |
| 乘法 | * | 6 * 7 | 42 |
| 除法 | / | 15 / 3 | 5.0 |
| 整除 | // | 17 // 5 | 3 |
| 取模 | % | 17 % 5 | 2 |
| 幂运算 | ** | 2 ** 3 | 8 |
LabEx 建议定期练习这些计算,以培养使用 Python 进行数学编程的技能。
>>> import math
## 三角函数
>>> math.sin(math.pi/2)
1.0
## 对数函数
>>> math.log(10)
2.302585092994046
## 取整函数
>>> math.ceil(4.3)
5
>>> math.floor(4.7)
4
## 安装 NumPy
$ pip3 install numpy
>>> import numpy as np
## 数组运算
>>> np.array([1, 2, 3]) * 2
array([2, 4, 6])
## 统计函数
>>> data = [1, 2, 3, 4, 5]
>>> np.mean(data)
3.0
>>> np.median(data)
3.0
## 安装 SciPy
$ pip3 install scipy
>>> from scipy import stats
## 统计分布
>>> stats.norm.pdf(0, loc=0, scale=1)
0.3989422804014327
## 积分
>>> from scipy import integrate
>>> integrate.quad(lambda x: x**2, 0, 1)
(0.33333333333333337, 3.700743415417189e-15)
>>> from sympy import symbols, diff
## 定义符号变量
>>> x = symbols('x')
## 符号求导
>>> diff(x**2, x)
2*x
## 方程求解
>>> from sympy import solve
>>> solve(x**2 - 4, x)
[-2, 2]
| 库 | 专长 | 关键特性 |
|---|---|---|
| math | 基础数学 | 三角函数、对数 |
| NumPy | 数值计算 | 数组运算、统计 |
| SciPy | 科学计算 | 高等数学、积分 |
| SymPy | 符号数学 | 方程求解、符号运算 |
## 推荐的安装方法
$ pip3 install numpy scipy sympy
LabEx建议逐步探索这些库,从基础数学库开始,再进阶到更复杂的库。
通过了解 Python REPL 的数学功能,开发者能够无缝地执行数值运算、利用高级数学库并提升他们的计算技能。本教程展示了 Python 在处理数学任务方面的灵活性,使其成为科学计算、数据分析和解决数学问题的重要工具。