Python工程和科学计算1简介
1 简介
本章简要介绍了Python编程语言的可扩展性、应用领域和功能。
如果您需要在科学工作中进行大量计算,并希望以图形化的方式呈现计算结果,那么您应该认真考虑使用 Python。Python 是一种编程语言,其功能与 MATLAB相似, 且是科学计算目前用户最多的首选语言。
1.1 开发环境
1.1.1 IDLE(不推荐使用)
IDLE是一个非常适合Python初学者的IDE。它简单易用,功能齐全,为初学者提供了良好的学习和开发环境。但是,对于大型项目或有较高性能要求的开发者来说,可能需要考虑使用更专业的IDE。
1.1.2 Thonny
Thonny 适用于 Linux、macOS 和 Windows,可从 https://thonny.org 下载。
程序源代码必须输入文本编辑器(左上角区域)。通过 (F5) 功能键或单击 “开始 ”按钮启动程序后,将打开一个窗口,输入程序的文件名。数值计算的结果会在 Python 外壳左下角的命令行窗口中输出。Matplotlib 程序的每个函数图都会在单独的窗口中输出。在 shell(也称为 Python 控制台)中,您还可以直接输入 Python 命令。主窗口右侧的 “助手 ”可以帮助您排除故障,不过您应该降低对其功能的期望值。
Thonny 的一个特别重要的功能是可以轻松安装和更新 NumPy、Matplotlib、SymPy、SciPy 和 VPython 模块。您只需打开 “工具”-“管理包 ”对话框即可完成这些任务。然后,在左上角的文本框中输入要安装的模块名称,点击安装或更新。
要删除模块,必须在左侧窗格中选择相应模块。然后,“卸载 ”命令按钮会出现在 “安装 ”命令按钮的右侧。Thonny 软件包管理器的一个显著优势是,您还可以测试所有可用模块的旧版本。要完成这项任务,只需点击安装按钮右侧的...命令图标,就会打开一个窗口,在其中选择所需的模块版本。
Thonny很适合嵌入式MicroPython开发。
1.1.3 Spyder
Spyder 可在 https://www.spyder-ide.org 免费下载,适用于 Linux、macOS 和 Windows。
要使用 Matplotlib 程序运行动画,必须在 IPython 控制台 - 图形下的设置中选择自动作为后端。启动程序后,将打开一个单独的窗口来运行动画。包含滑块控件的 Matplotlib 程序也只能通过该选项交互执行。
1.1.4 pip
pip允许您轻松下载和更新模块--当您使用 Python 时,Pip 是一个特别重要的工具。
例如,如果您已经安装了 Python,但只想添加 NumPy 模块,您可以在 Windows、Linux 或 macOS 的终端中输入以下命令:
pip install numpy
使用以下命令可以更新现有的 NumPy 安装:
pip install --upgrade numpy
1.1.5 Visual Studio Code
Visual Studio Code(简称 VS Code)是一款非常受欢迎的轻量级代码编辑器,支持多种编程语言,包括 Python。VS Code 提供了许多强大的功能,如智能感知(IntelliSense)、调试、Git 集成等,非常适合 Python 开发。
1.1.6 Cursor
基于Visual Studio Code的AI增强IDE:
1.1.7 Wing IDE
Wing IDE(商业软件)是一款专为 Python 编程设计的集成开发环境 (IDE)。它提供了一套全面的工具,旨在帮助 Python 开发者提高效率和代码质量。
1.1.8 PyCharm
PyCharm(商业软件)是由 JetBrains 公司开发的一款专为 Python 编程语言打造的集成开发环境 (IDE)。它提供了丰富的工具和功能,旨在帮助 Python 开发者更高效地编写、调试和维护代码。
功能强大,但是使用的是java语言开发,有点笨重。
参考资料
- 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
- 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
- python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
1.2 Python 的模块
为了让我们初步了解 Python 中模块概念的能力和特性,我首先想用类似关键字的方式来描述五个模块。通常使用库或软件库来代替模块。使用简短的示例程序最能说明 Python 的功能。当然,您还不需要理解本节所示的源代码。毕竟,理解才是其他章节的目的。
1.2.1 NumPy
- 简单的向量微积分程序。
import numpy as np
A=np.array([1, 2, 3])
B=np.array([4, 5, 6])
print("Vector A:",A)
print("Vector B:",B)
print("Total A+B:",A+B)
print("Product A*B:",A*B)
print("Cross product :",np.cross(A,B))
print("Scalar product:",np.dot(A,B))
执行结果:
Vector A: [1 2 3]
Vector B: [4 5 6]
Total A+B: [5 7 9]
Product A*B: [ 4 10 18]
Cross product : [-3 6 -3]
Scalar product: 32
- 叉积(Cross product)
叉积,也称为向量积或外积,是一种在三维空间中定义的向量运算。它接受两个向量作为输入,并产生一个新的向量作为输出。这个新向量垂直于输入的两个向量所构成的平面,其方向由右手定则确定。
- 标量积(Scalar product)
标量积,也称为点积(Dot product)或内积(Inner product),是一种接受两个等长的数字序列(通常是坐标向量),并返回一个单一数字(标量)的代数运算。
1.2.2 Matplotlib
- 多项式函数图的简单示例。
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(-2,6,0.01)
y=x**3-7*x**2+7*x+15
plt.plot(x,y)
plt.show()
1.2.3 SymPy
- 符号微分和积分的简单示例。
from sympy import *
x=symbols("x")
y=x**3-7*x**2+7*x+15
y_1=diff(y,x,1)
y_2=diff(y,x,2)
y_3=diff(y,x,3)
Y=integrate(y,x)
print("1. Derivative:",y_1)
print("2. Derivative:",y_2)
print("3. Derivative:",y_3)
print(" Integral :",Y)
执行结果:
1. Derivative: 3*x**2 - 14*x + 7
2. Derivative: 2*(3*x - 7)
3. Derivative: 6
Integral : x**4/4 - 7*x**3/3 + 7*x**2/2 + 15*x
- 导数(Derivative)
导数是微积分中的一个基本概念,它表示函数在某一点处的变化率。通俗来说,导数告诉我们函数在这一点上是变大、变小还是保持不变,以及变化的速度有多快。
1.2.4 SciPy
使用 SciPy 进行数值积分
import scipy.integrate as integral
def f(x):
return x**2
A=integral.quad(f,0,5)
print("Area A=",A[0])
输出
Area A= 41.66666666666666
第 6 章将介绍 SciPy 模块。
1.2.5 VPython
使用 VPython编写弹跳球动画的示例。
import scipy.integrate as integral
def f(x):
return x**2
A=integral.quad(f,0,5)
print("Area A=",A[0])
输出
Area A= 41.66666666666666
第 7 章将介绍 VPython 模块。当然,我们提到的 Python 模块的所有功能并不能在本书中详尽阐述。如果您错过了某个特定主题,我建议您参考在线文档作为补充信息来源。
1.3 如何阅读本书?
如何阅读本书?基本上,你可以独立阅读各个章节。如果您已经了解 Python 的基本结构,那么可以跳过第 2 章。如果刚刚开始学习,则必须先阅读这一章,这是理解后续章节的前提。
我们的讲解和知识传授方法基于一个统一的原则: 每个主题都会介绍一至三个来自电气工程、机械工程或物理学的实例。在简要介绍任务之后,打印出完整的源代码。在源代码之后,直接进行输出(计算结果)。然后对源代码进行讨论和分析。
我们对源代码的分析还包括对结果(输出)的分析。结果是否符合预期?程序是否完全解决了设定的任务?通常情况下,只有在仔细查看输出结果后,你才能完全理解程序的源代码。查看输出结果后,你可以再次分析源代码。
在每章的最后,都会提供一个或多个项目任务,并对其进行讨论和全面解决,以巩固和拓展该章所学内容。