还有两个算术操作符要告诉你。程序中需要的 99% 的操作符就是这两个操作符再加上前面刚讲的 4 个基本操作符。
指数——自乘为一个幂
如果把 3 乘 5 次,可以写成
>>> print 3 * 3 * 3 * 3 * 3243
不过,这就等同于 35,或者“3 的指数为 5”,也就是“3 的 5 次幂”。Python 用一个双星号表示指数或者将一个数自乘为一个幂。
>>> print 3 ** 5243
切记!
很多语言和程序可能使用其他符号来表示自乘为一个幂。一种常用的符号是 ^(例如 3^5)。如果在 Python 中使用这个符号,你不会得到一个错误消息,只不过答案不正确。(这是因为,^ 在 Python 中另有含义————我们可不希望这样!)这个问题可能很难调试。一定要使用
**
操作符表示自乘为一个幂 [ 也称为求幂(exponentiation)]。
之所以使用指数而不是直接做多次乘法,这是因为键入时会更容易一些。不过更重要的原因是,利用 **
还可以用非整数作为指数,如下:
>>> print 3 ** 5.5420.888346239
要想利用乘法来做到这一点可不容易。
取余——求余数
在 Python 中第一次尝试除法时,我们已经看到,如果将两个整数相除,Python 2 会给你一个整数答案。(Python 3 使用 // 操作符。)也就是说,它在完成整数除法。不过,在整数除法中,答案实际上有两部分。
还记得刚开始学除法吗?如果两个数不能整除,最后会得到一个余数(remainder):
7 / 2 = 3,余数是 1
7 / 2 的答案中有一个商(quotient),在这里就是 3,还有一个余数(remainder),这里的余数是 1。如果在 Python 中将两个整数相除,它会给你商。不过余数呢?
Python 有一个特殊的操作符来计算整数相除的余数。这称为取余(modulus)操作符,这个符号是百分号(%)。可以像这样使用:
>>> print 7 % 21
所以如果同时使用 / 和 %,就可以得到整数相除的完整答案:
>>> print 7 / 23>>> print 7 % 21
可以看到,7 除以 2 得 3,余数是 1。如果做浮点数除法,会得到小数答案:
>>> print 7.0 / 23.5
实际上,既然你提到了这一点,应该说操作符和操作员确实很接近……就像老式电话接线员连接电话一样,算术操作符按同样的方式把数字连接在一起。
我想告诉你的还有另外两个操作符。我知道,我刚才已经说过只再讲两个,不过别担心,这两个操作符非常容易!
自增和自减
还记得上一章中的例子:score = score + 1
吗?我们说过,这称为自增(incrementing)。与它类似的是 score = score - 1
,这称为自减(decrementing)。这些运算在编程中经常出现,因此有自己专门的操作符:+=(自增)和 -=(自减)。
可以像这样使用:
或者:
其中第一个例子将 number
增 1(这会从 7 变成 8)。第二个例子将 number
减去 1(从 7 变成 6)。