-2

如果我有一个if使用andand的语句,or我可以执行以下操作:

if (a=0 or x=2) and y=1:

还是我必须重复自己并做:

if a=0 and y=1 or x=2 and y=2:
4

2 回答 2

1

两者都可以正常工作(好吧,在第二个版本结束时修复错误之后)。但请注意,比较不是这样写的!做这个:

if (a == 0 or x == 2) and y == 1:

或等效地:

if (a == 0 and y == 1) or (x == 2 and y == 1): # NOT y == 2 as you wrote

请注意,它==是相等运算符 - 单一=表示赋值

于 2013-09-17T01:34:55.183 回答
1

布尔代数展示了典型代数的许多性质。andover的分配性or单调定律之一,其表述如下:

x∧(y∨z)     =   (x∧y)∨(x∧z)

在你的情况下:

(y == 2) and ((a==0) or (x==2)) = ((y==2) and (a==0)) or ((y==2) and (x==2))
   x      ∧  (  y    ∨     z  )   (    x    ∧    y  ) ∨  (  x     ∧    z)
于 2013-09-17T01:40:09.470 回答