首页 » 父与子的编程之旅:与小卡特一起学Python » 父与子的编程之旅:与小卡特一起学Python全文在线阅读

《父与子的编程之旅:与小卡特一起学Python》3.4 另外两个操作符

关灯直达底部

还有两个算术操作符要告诉你。程序中需要的 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)。