大家好,欢迎来到 Crossin 的编程教室。
虽然咱们这儿大多数同学都已经有了一些编程基础,但考虑到有刚加入的新同学,偶尔还是要说一点基础向的内容。今天 Crossin 就跟大家说一说 Python 中的数学运算。
在用计算机编程解决问题的过程中,数学运算是很常用的。python自带了一些基本的数学运算方法。
其中加减乘除都比较简单,就和正常数学中的写法一样。要注意的就是在绝大多数编程语言中,乘法是 *,而不是 ×;除法是 /,而不是 ÷。Python 也是如此。
参与计算的可以是数值,也可以是一个表示数字的变量:
print(3 * 7)a = 12print(a / 3)
214.0
如果你就是需要得到整除结果,可以用两个斜杠(//)实现:
print(8 / 2)print(8 // 2)print(9 // 2)
4.044
如果你想得的这个余数,可以用取模运算,符号是百分号(%):
print(9 % 2)print(9 % 5)
14
另一个很常见的数学运算是乘方,也就是幂运算。在不少编程语言中,用 ^ 符号表示乘方。然而在 Python 中,^ 表示「按位异或」的位操作运算(对此操作不理解也没关系,你通常不太会用到它),而表示乘方的符号则是两个乘号(**):
a = 8b = a ^ 2 # 8和2按二进制位进行与操作print(b)b = a ** 2 # 8的2次方print(b)
1064
a = 7a **= 2print(a) # 7*7=49a //= 2print(a) # 49//2=24a %= 2print(a) # 24%2=0
49240
看看这段代码,你能看出它的作用是什么吗?
x1 = 1y1 = 2x2 = 3y2 = 4dist = ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5print(dist)
有时我们会在代码中看到类似 5e3 这样的写法,这是科学计数法,表示 5*10的3次方,也就是 5000.0,注意这也都是浮点数。
print(5e3)输出:
5000.0此外,Python里内置了一个数学运算模块,叫做math,在使用之前,你需要:
import mathmath 包里有几个常量,你可能会用到的:
圆周率π:3.141592...
math.pi自然常数:2.718281...
math.e正无穷大,是个浮点数
math.infmath 里常用的数值运算方法:
对x向上取整,比如x=1.2,返回2
math.ceil(x)对x向下取整,比如x=1.2,返回1
math.floor(x)指数运算,得到x的y次方
math.pow(x,y)对数,默认基底为e。可以使用base参数,来改变对数的基底。比如math.log(100,base=10)
math.log(x)平方根
math.sqrt(x)绝对值
math.fabs(x)三角函数:
math.sin(x)math.cos(x)math.tan(x)math.asin(x)math.acos(x)math.atan(x)
注意:这里的x是以弧度为单位,所以计算角度的话,需要先换算
角度和弧度互换:
弧度转角度
math.degrees(x)角度转弧度
math.radians(x)以上是你平常可能会用到的函数。除此之外,还有一些,这里就不罗列,可以去
https://docs.python.org/zh-cn/3/library/math.html
查看官方的完整文档。
有了这些函数,可以更方便的实现程序中的计算。比如中学时代算了无数次的一元二次方程求根公式:
现在你就可以写一个函数,输入一元二次方程的a、b、c系数,直接给你数值解。好,这题就留作课后作业吧!
对了,最后再提一个 Python 数学运算时经常被新手踩到的坑:
0.1 + 0.2 == 0.3你觉得这个比较等式的结果是什么呢?
答案参见旧文:0.1+0.2竟然不等于0.3?!
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~