2.5 程序里的数学运算
我们可以使用Python 编程来解决很多数学问题,现在中小学课本里的大部分数学问题几乎都可以通过Python 编程来解决。下面学习一些基本的运算。
算术运算在编程中就是常见的加减乘除和乘方,见表2-2。
表2-2
关于表2-2 中的内容,需要注意以下几点:
· 除法分为完整除法和整数除法两种,完整除法得到的商是一个浮点数,整数除法得到的商是一个整数。
· 乘法运算符号**表示“多少次方”。
· 符号%表示取余数,也叫模数,即被除数除以除数,商只能是整数的情况下得到的余数,它在编程中有很多巧妙的应用。
如果需要计算平方根和三角函数怎么办?这时在Python 中就需要引入它自带的一个标准数学模块math。所谓标准模块,就是Python 官方事先写好的一系列可以拿来就用的功能(或叫函数,后面章节会介绍),使用者只要在程序的最开头引入,然后直接使用即可。下面举例说明。
示例2-6 变量a 的值为100,变量b 的值为30,编程计算a 和b 加减乘除四则运算的值,并计算100 的算术平方根和它的3 次方是多少。
代码如下:
运行结果如下:
解说:代码中第2 行引入了Python 自带的数学模块math,然后在第12 行调用其中的sqrt()函数计算变量a 的算术平方根,sqrt 就是求平方根的意思。第8 行进行完整的除法,结果因为没有规定要保留多少位小数,Python 会自动按照它默认的方式保留这么多位的小数,后面会讨论如何保留小数的位数。
Python 的math 模块中还有很多数学里常见的运算和数学函数,比如math.pi 就是圆周率,math.e 就是自然对数。再看表2-3,大家可以打开Python 的交互式界面运行一下,看看结果。
表2-3
说明:注意其中的四舍五入函数round()和求绝对值函数abs()不是math 模块中的函数,因此前面不要写math,否则会报错。因为这两个操作太常见了,Python 并没有把它们放入其math 模块中。
如果x 是一个数,math.ceil(x)是求大于x 的最小整数,而math.floor(x)是求小于x 的最大整数,前者叫天花板函数,后者叫地板函数,在编程中也很常见。对于math模块中的其他函数,大家可以在“>>>”符号后输入dir(math)进行查看,具体的某一个函数,比如floor,可以在“>>>”符号后输入help(math.floor)查看在线英文文档,要退出查看模式,输入一个小写字母q 即可。
在实际的编程中不必死记硬背函数名,我们只要学会在“>>>”符号后使用help()帮助命令即可,这样就可以随时随地查看我们所需要的Python 文档,非常方便。
最后需要了解一下算术运算的优先级问题,这和数学中的规定一样,整个运算表达式是从左向右进行运算的,先乘除,再加减,乘方运算优先于乘除运算,如果要改变运算的先后顺序,可以按需添加圆括号,做除法运算时,分母不能为零。