Python教程 深入条件控制

while 和 if 条件句中可以使用任意操作,而不仅仅是比较操作。

比较操作符 in 和 not in 校验一个值是否在(或不在)一个序列里。操作符 is 和 is not 比较两个对象是不是同一个对象,这只跟像列表这样的可变对象有关。所有的比较操作符都有相同的优先级,且这个优先级比数值运算符低。

比较操作可以传递。例如 == c 会校验是否 a 小于 b 并且 b 等于 c

比较操作可以通过python布尔运算符 and 和 or 来组合,并且比较操作(或其他任何布尔运算)的结果都可以用 not 来取反。这些操作符的优先级低于比较操作符;在它们之中,not 优先级最高, or 优先级最低,因此 and not orC 等价于 (A and (not B)) or C。和之前一样,你也可以在这种式子里使用圆括号。

布尔运算符 and 和 or 也被称为 短路 运算符:它们的参数从左至右解析,一旦可以确定结果解析就会停止。例如,如果 A 和 C 为真而 B 为假,那么 and and C 不会解析 C。当作用于普通值而非布尔值时,短路操作符的返回值通常是最后一个变量。

也可以把比较操作或者逻辑表达式的结果赋值给一个变量,例如

>>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'
>>> non_null = string1 or string2 or string3
>>> non_null
'Trondheim'

注意 Python 与 C 不同,赋值操作不能发生在表达式内部。C程序员可能会对此抱怨,但它避免了一类C程序中常见的错误:想在表达式中写 == 时却写成了 =

posted @ 2019-04-12 17:45  红皮橘子  阅读(322)  评论(0编辑  收藏  举报