上QQ阅读APP看书,第一时间看更新
2.8.1 数值类型的基本运算
比较是数值之间最常见的操作之一,这些操作的结果是布尔类型的值。表2-4和表2-5中给出了比较操作符和常见的数值运算操作符。
表2-4 比较操作符
表2-5 最常见的数值运算操作符
来看如下实际的例子。
>>> 1 + 1 2 >>> 100 + 22.1 122.1 >>> 10086 - 10000 86 >>> 100 * 2000 200000 >>> 666 / 6 111.0 >>> 100 % 3 1
数值运算可以做链式表达。
>>> 2 + 3 * 5 - 10 / 5 15.0
算术运算符是有优先级的,在做链式表达的时候,一定要注意运算符的优先级,必要的时候可以配合括号运算符。
>>> (2 + 3) * 5 - 10 / 5 23.0
在数学链式表达方面,我们可以通过括号来控制计算顺序,或者强调计算顺序,澄清代码意图。
>>> (2 + 3) * 5 - (10 / 5) 23.0
有很多算术运算在Python里没有对应的运算符,而是通过函数来完成,比如取绝对值。
>>> abs(99) 99 >>> abs(-8) 8
在这些操作的基础上,我们可以灵活组合,写出更复杂的数学逻辑,比如判断变量是不是偶数。
>>> y = 99 >>> y % 2 == 0 False
熟悉C++的读者对以下C++整型数自增代码肯定比较熟悉:
// 这是C++的自增代码 i++; --i;
要特别注意,Python不支持这样的自增、自减操作。
>>> i = 0 >>> i++ File "<stdin>", line 1 i++ ^ SyntaxError: invalid syntax
要做到这样的自增操作,Python要通过显式的方法。
>>> i = i + 1
或者如下这样的简化写法。
>>> i += 1 >>> i -= 5
如果读者学过C++编程,应该或多或少被自增自减操作折磨过,因为需要了解i++和++i的细微差别,需要知道它们在什么时间点做“增/减”的操作,需要反复琢磨以写出符合预期的代码,或者找出可能的bug。对于自增自减操作,Python的不支持是一个更好的设计。