2.8 基本运算

> 算数运算

算术运算符包括+,-,*,/,//,%,**。

以下假设x为10,y为3。

我们来看两个特殊的例子。

下图中变量a最终是float类型,这是为什么呢?

因为在做运算的时候,它会把运算符两边的数据类型转换成相同的数据类型,这里就是把int型向float型转换,所以最后得到的结果也是float型。

取余的时候,有些小细节也要注意:结果的符号和除数的符号是一致的。

> 比较运算

比较运算符包括>,<,==,<>,>=,<=,!=。

比较运算的结果为布尔值,True或者False。

以下假设x为3,y为10。

我们来看两个例子。

下图中3 == 3.0是成立的,因为如果把整数3转换成浮点数的3.0,对于值来说是没有损失的。但是3 == “3”就不成立了,因为“3”相当于字符串,字符串和数字是不能相等的。

下图中涉及到一个先做算术运算还是先做比较运算的问题,我们可以根据结果看到,是先做算术运算的。我们可以得出一个结论:算术运算的优先级比比较运算高。

> 赋值运算

赋值运算符包括=,+=,-=,*=,/=,%=,**=,//=。

这种写法确实比较简略,但是建议初学者呢,还是写的更加易懂一点,以免混淆。

这里有一个注意点:赋值运算符后面x要看成一个整体。

比如下图这个例子:

它先做了4+3的运算,得到了7,再跟10相乘,最后得到结果为70。

还有一个注意点:赋值的左边一定是一个变量。

如果写成下图的形式就会报错:

这时候左边的z - 1是一个表达式,不能把9赋给一个表达式。如果右边是表达式的话就不会有问题。

> 逻辑运算

逻辑运算符包括and,or,not。

在逻辑运算中,0视作False,非0的值就视为True。

因此下图中的10就代表了True,结果就返回了y的计算值:20+5,也就是25。

在逻辑运算中,False的值就是0,True的值就是1。

但是有一点需要注意:在逻辑运算中,非0的值只是视作True,但并不等于True。只有1等于True。

因此,下图中的结果是False,说明5不等于True。

Last updated