摘要:上一篇Python从入门到放弃-运算符(1),讲了Python的运算符中的算术运算符、赋值运算符、比较(关系)运算符,这篇继续讲Python的运算符。

逻辑运算符


逻辑运算符是对真和假两种布尔值进行运算,运算后的结果仍是一个布尔值,Python中的逻辑运算符主要包括and(逻辑与),or(逻辑或),not(逻辑非)。下表是逻辑运算符的用法和说明。

运算符

含义

用法

结合方向

and

逻辑与

op1 and op2

从左到右

or

逻辑或

op1 or op2

从左到右

not

逻辑非

not op

从右到左


使用逻辑运算符进行逻辑运算时,其运算结果如下:

表达式1

表达式2

表达式1 and 表达式2

表达式1 or 表达式2

not 表达式1

True

True

True

True

False

True

False

False

True

False

False

False

False

False

True

False

True

False

True

True

位运算符


位运算符是把数字看做二进制来进行计算的,因为,需要先将要执行运算的数据转换成为二进制,然后才能执行运算。Python中的位运算符有位与(&)、位或(|)、位异或(^)、取反(~)、左移位(<>)运算符。

  • “位与”运算


“位与”运算的运算符为“&”,“位与”运算的运算符法则是:两个操作数据的二进制表示,只有对应位都是1时,结果才是1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如下图所示,60&13 = 12

python逻辑运算符练习 python语言逻辑运算符_python逻辑运算符练习

  • “位或”运算


“位或”运算的运算符为“|”,“位或”运算的运算符法则是:两个操作数据的二进制表示,只有对应位都是0时,结果才是0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如下图所示,60|13 = 61

python逻辑运算符练习 python语言逻辑运算符_python 取反_02

  • “位异或”运算


“位异或”运算的运算符为“^”,“位异或”运算的运算符法则是:两个操作数据的二进制表示相同时(同时为0或同时为1),结果为0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如下图所示,60^13 = 49

python逻辑运算符练习 python语言逻辑运算符_python 取反_03

  • “位取反”运算


“位取反”运算也称为“位非”运算,运算符为“~”,“位取反”运算运算就是将操作数中对应的二进制数1修改为0,0修改为1,如下图所示,

python逻辑运算符练习 python语言逻辑运算符_python 取反_04

  • “左移位”运算


“左移位”运算符<

python逻辑运算符练习 python语言逻辑运算符_python 取反_05

  • “右移位”运算


“右移位”运算符>>是将一个二进制操作数向右移动指定的位数,右边(低位端)溢出的位被丢弃,而在填充左边(高位端)的空位时,如果最高位是0(正数),左侧空位补零;如果最高位是1(负数),左侧空位填入1。右移位运算相当于除以2的n次幂。例如:a = 240,右移一位的值是120,右移两位的值是60。如下图所示:

python逻辑运算符练习 python语言逻辑运算符_python 取反_06

成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。在Python中常见的成员运算符如下:

运算符

描述

实例

in

如果在指定的序列中找到值返回 True,否则返回 False。

x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

not in

如果在指定的序列中没有找到值返回 True,否则返回 False。

x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True

如下所示,演示了成员运算符的操作:

python逻辑运算符练习 python语言逻辑运算符_python ** 运算符_07

运算符优先级

所谓运算符优先级,就是先计算哪个,后计算哪个。与数学的四则运算应该遵守的“先乘除后加减”是一个道理。Python运算符的运算规则是:先进行优先级高的运算,后进行优先级低的运算,同一级优先级的从左到右计算,有括号的先进行括号运算。下表是优先级从高到底排列。

运算符

说明

**


~、+、-

取反、正号、负号

*、/、%、//

算术运算符

+、-

算术运算符

<>

位运算符中的左移和右移

&

位运算符中的位与

^

位运算符中的位异或

|

位运算符中的位或

、>=、!=、==

比较运算符


在编写代码时尽量使用括号 “()” 来限定运算次序,以免运算次序发生错误。

总结

  • 具体介绍了逻辑运算符、位运算符和成员运算符。
  • 介绍了Python运算符的优先级,在在编写代码时尽量使用括号 “()” 来限定运算次序,以免运算次序发生错误。

end