猫史档案馆


教程帖(16)

用户:邓D敏M怡Y邓D敏M怡Y查看:3 回复:3 评论:3 创建时间:2020-05-09T09:56:11


同学们大家好,现在呢我们来讲解一下python里面的四大基本运算符~Python 可以做一些数学运算:使用加号(+)完成加法,另外使用星号(*)完成乘法。如你所料,Python 使用连字号(-)(也称为减号)来做减法:↓(例子)

>>> print 8 - 5

3

由于计算机键盘上没有除号(÷),所以所有程序都使用前斜杠(/)表示除法:↓(例子)

>>> print 6/2

3

这是对的,不过有时 Python 做除法时会得到意外的结果:

>>> print 3/2

1

咦?我还以为计算机精通数学计算呢,原来不过如此!所有人都知道

3 / 2 = 1.5

这到底怎么回事?嗯,虽然看起来好像很傻,其实 Python 确实想表现得聪明一些。要解释这个问题,你要知道整数和小数。如果你还不知道它们的区别,先来看看术语箱中简单的解释。术语箱整数(integer)就是我们平常数数时所说的数,如 1、2、3,另外还包括 0 和负数,如 -1、-2、-3。小数(decimal number)也称为实数(real number),这些数有小数点而且后面有小数位,如 1.25、0.3752 和 -101.2。在计算机编程中,小数也称为浮点数(floating-point number,有时简写为 floats,或者如果只有一个浮点数,就简写为 float)。这是因为小数点会“浮动”。0.00123456 或 12345.6 都是浮点数。因为你输入的 3 和 2 都是整数,所以 Python 认为你同样想要整数作为答案。所以它会把答案 1.5 取整为比它小且最接近的整数,也就是 1。换句话说,Python 完成了不带余数的除法。要解决这个问题,可以这样试试看:↓

>>> print 3.0 / 2

1.5

这样就好多了!如果把两个数中的任何一个作为小数输入,Python 就会知道你想在答案中保留小数部分。

运算顺序

下面哪一个正确?

2 + 3 * 4 = 20

还是

2 + 3 * 4 = 14

这要看你采用什么顺序来计算。如果先做加法,会得到

2 + 3 = 5,

然后得到

5 * 4 = 20

如果先做乘法,就会得到

3 * 4 = 12,

然后是

2 + 12 = 14

第二个顺序是正确的,所以正确答案是 14。在数学中有一种运算顺序(order of operation),指定了先计算哪些操作符,后计算哪些操作符,而不管它们的书写顺序如何。在我们的这个例子中,尽管 + 号在 * 号前面,但是应当先算乘法。Python 会遵循正确的数学规则,所以它会先做乘法再做加法。可以在交互模式中试试看,看看能不能得到这个结果:↓

>>> print 2 + 3 * 4

14

Python 使用的顺序与你在数学课上学到的(或者将要学到的)规则完全相同。指数运算最优先,然后是乘除,再后面是加减运算。如果希望改变运算顺序,先完成某个运算,只需要在它两边加上括号(圆括号),比如:↓

>>> print (2 + 3) * 4

20

这一次,Python 会先做 2 + 3(因为有括号),可以得到 5,然后再做乘法 5 * 4,得到 20。再强调一次,这与数学课上讲的是一样的。Python(和所有其他编程语言)都会遵循正确的数学规则和运算顺序~

另外两个操作符

还有两个算术操作符要告诉你。程序中需要的 99% 的操作符就是这两个操作符再加上面刚讲的 4 个基本操作,指数——自乘为一个幂如果把 3 乘 5 次,可以写成,如下👇

>>> print 3 * 3 * 3 * 3 * 3

243

不过,这就等同于 35,或者“3 的指数为 5”,也就是“3 的 5 次幂”。Python 用一个双星号表示指数或者将一个数自乘为一个幂。👇

>>> print 3 ** 5

243

切记!很多语言和程序可能使用其他符号来表示自乘为一个"幂"。一种常用的符号是 ^(例如 3^5)。如果在 Python 中使用这个符号,你不会得到一个错误消息,只不过答案不正确。(这是因为,^ 在 Python中另有含义!)这个问题可能很难调试。一定要使用 ** 操作符表示自乘为一个幂 [ 也称为求幂(exponentiation)]。之所以使用指数而不是直接做多次乘法,这是因为键入时会更容易一些。不过更重要的原因是,利用 ** 还可以用非整数作为指数,如下:👇

>>> print 3 ** 5.5

420.888346239

注:此教程帖仅限彩云工作室的成员使用,未经允许不得转载~


回复

上一页1 页 / 共 1下一页
邓D敏M怡Y邓D敏M怡Y

sofa

点赞0


评论


CYS_爱写小说的蘑菇头CYS_爱写小说的蘑菇头

第二·

 

点赞0


评论


CY天下第一阔爱魔术喵CY天下第一阔爱魔术喵

o( ̄▽ ̄)d

点赞0


评论