程序语言的特性总是为解决生活中遇到的实际问题而设计的。脱离生活实质的无根源的设计是为意义的。正如运算符,正是因为我们在生活中,总是遇到各种各校的运算问题。
python算术运算符
加减乘除是最基本的数学规则,python中当然不能忽视。我们通过交互式解释器来演示。在cmd命令行下,输入python回车,即可打开交互式窗口。
加减乘除如下:
进行除法运算时,如果不使用分数,则会出现有余数的情况,数学里,通常表示如下:
python里,提供 % 符号用于取余数,提供 // 符号用于取整数商。如下:
python里,用两个星号,即 ** 代表幂运算,如下:
python比较运算符
比较大小,判断是否相等,也是常见的数学运算。这类运算的结果为是或否,python中,用两个特殊的变量,True和False来表示是或否。如下:
需要注意的是,等于是用两个等于号来表示的,新手常范的错误之一就是少写了一个等于号。
本文章基于版本python3,老版本中,不等于可以用 <> 来表示,python3已经移除了该运算符。
python赋值运算符
python和大部分语言一样,用一个等于号来表示赋值。如令a的值为1,如下:
赋值运算符可以和算术运算符相结合,形成一个复合运算符,该运算符的含义是先将变量和运算符右项进行指定的算术运算,再将运算结果赋值给变量。如下:
幂运算也可以和赋值运行符结合,如下:
python位运算符
计算机中,所有的内容最终都会以二进制的形式被计算机识别,对于二进制来说,位运算就是一个常规的内容。运算规则有与、或、非、异或、左移、右移等。如下:
对于位运算不是很了解的同学,请自行学习机器码,二进制等相关内容。后面的文章也会专门提到。
python逻辑运算符
python中也有用于描述逻辑运算的内容。不同于其它语言的是,在其它语言中,可能使用 & 或 && 来表示与,用 | 或 || 来表示或,用 !来表示非。但在python中,直接用英文单词 and 、or、not来表示。如下:
有同学可以会问,为什么python不像其它语言一样,采用符号化的方式来表示逻辑运算,而是通过单词来表示?
其实没有为什么,或者说,这个问题的答案或许只有python之父Guido知道了。任何一个事物都没有绝对的好和坏,只有适合或更适合吧。
python成员运算符
经常我们会遇到这样的问题:判断某个元素是否在某个集合中。python通过 in 或not in 来完成这个工作。
in 代表 判断某元素是否在某个序列或元组中,在返回True,不在返回False。
not in 和 in 判断逻辑刚好相反。如下:
python身份运算符
通常我们还会遇到这样的问题:判断两个标识是否指向同一个对象。python中用 is 或 is not。
这种比较,比较的是两个标识是否指向了内存中的同一个存储单元。它和 == 是不同的。==判断的是它们的值是否相同。而用is时,即使值相同,也可能因为不是同一个存储单元而返回False。
有java基础的同学会发现,这和java中是不一样的。java中,==判断的就是两个对象的内存地址,而如果仅仅通过值判断,需要使用equals方法。
python运算符优先级
如我们在学四则运算时,加减乘除有优先级一样,python中运算符也有优先级。如下:
从代码规范的角度来说,我们更希望你可以通过小括号的使用,明显的表示出一个复杂表达式的优先级,以提高代码的可读性。如下:
显然,第二种写法是更推荐的。