Python语句中的多个条件的简写

use*_*ame 1 python

if x == y != z:
    print (x + y)
Run Code Online (Sandbox Code Playgroud)

这是if x == y和y!= z的缩写吗?它适用于我的代码,但我不确定当多个条件不是全部​​==或!=时,如何解释多个条件,或者以上面的后一种形式写出来.

Wil*_*sem 5

是的,如文件中所述:

(......)

比较可以任意链接,例如,x < y <= z等同于x < y and y <= z,除了y仅评估一次(但在两种情况下z都没有被评估,当x < y发现是假的时).

所以,你可以链接任何类型的比较:<,>,==,>=,<=,<>,!=,is [not],和[not] in.

文档进一步使其更正式:

形式上,如果a,b,c,...,y,z是表达式而op1,op2,...,opN是比较运算符,则a op1 b op2 c ... y opN z等效于a op1 b and b op2 c and ... y opN z,除了每个表达式最多被计算一次.

例如:

'a' in 'ab' in 'zabc'
Run Code Online (Sandbox Code Playgroud)

相当于:

'a' in 'ab' and 'ab' in 'zabc'
Run Code Online (Sandbox Code Playgroud)

  • 干得好.我们可以将此作为未来问题的欺骗目标. (2认同)