本文共 779 字,大约阅读时间需要 2 分钟。
3.7 深入条件控制
在while和if语句中用到的条件可以包含任何操作符而不仅仅是比较运算符。
比较运算操作符in和not in 主要检查值是否在列表中出现(或不出现)。操作符is和is not 用来比较两个对象是不是真正相同的对象。这仅仅用于可变对象如列表。所有的比较运算法拥有同样的优先级,但都比数字操作符的优先级低。
比较运算法可以连接使用,例如: a < b == c 用来测试a是否< b 并且b == c。
可以用布尔操作符and和or来组合比较操作符。并且比较的结果(或者任何其他逻辑表达式)可以使用not操作符取反。 这些操作符(指and, or和not)的优先级低于比较操作符。在它们之中,not拥有最高的优先级,or拥有最低的优先级。 因此 A and not B or C 等同于(A and (not B))or C , 和其他一样,可以用括号表达想要的组合。
布尔操作符and和or是所谓短路的操作符。他们参数从做左到右依次判定,只要结果确定就停止。例如如果A和C是真的但是B是假的,A and B and C 不能判定表达式C,当短路操作符返回值作为普通值而不是布尔值使用时,则返回值是最后一个被判定的表达式。
可以允许把比较运算符或者其他布尔表达式的结果赋值给一个变量。例如:
>>> string1, string2, string3 = ’’, ’Trondheim’, ’Hammer Dance’
>>> non_null = string1 or string2 or string3
>>> non_null
’Trondheim’
注意在python中不像C语言,赋值操作不能出现在表达式中。C程序员可能会对此抱怨,但是它避免了一个在C程序中经常遇到的典型的问题。想要在一个表达式中使用== 操作时确输入了 =。
转载地址:http://fskai.baihongyu.com/