Rup*_*pak 0 python if-statement modulus
第一:
a = int(input())
if a%4 == 0:
a += 1
if a%4 != 0:
a -= 1
print(a)
Run Code Online (Sandbox Code Playgroud)
第二:
a = int(input())
b = a%4
if b == 0:
a += 1
if b != 0:
a -= 1
print(a)
Run Code Online (Sandbox Code Playgroud)
在评估a第二个if条件之前,第一个可能已被修改,因此其行为有所不同:
if a%4 == 0:
a += 1 # this influences the result of the next IF
if a%4 != 0:
a -= 1
Run Code Online (Sandbox Code Playgroud)
实际上,在此特定情况下,如果第一个条件为true,则在将1添加到之后a,第二个条件也将为true,因此a再次从中减去1。
所述第二版本在第一存储b所需的条件工作,对结果原始输入值,且仅随后执行的修改a,这是不再玩在作用if条件。在那里,可以确保只有两个if条件之一为真。
但是,大多数只会使用else,从而消除了此问题:
if a%4 == 0:
a += 1
else:
a -= 1
Run Code Online (Sandbox Code Playgroud)