为什么第二个程序有效,但第一个无效?

时间:2019-07-03 07:53:55

标签: python if-statement modulus

第一:

a = int(input())
if a%4 == 0:
    a += 1
if a%4 != 0:
    a -= 1
print(a)

第二个:

a = int(input())
b = a%4
if b == 0:
    a += 1
if b != 0:
    a -= 1
print(a)

1 个答案:

答案 0 :(得分:8)

在评估第二个a条件之前,第一个可能会修改if,因此其行为会有所不同:

if a%4 == 0:
    a += 1 # this influences the result of the next IF
if a%4 != 0:
    a -= 1

实际上,在这种情况下,如果第一个条件为true,则将1加到a之后,第二个条件也将为true,因此a从中减去1再次。

第二个版本首先在b中存储条件以使条件适用于原始输入值,然后才对{ {1}},它在a条件下不再起作用。在那里,可以保证只有两个if条件之一为真。

但是,大多数人只会使用if,从而解决了这个问题:

else
相关问题