用while循环 计算1-2+3-4+5-6…求和

n = 1
sum = 0
while n < 101:
if n % 2 == 0:
sum = sum - n
else:
sum= sum + n
print(sum)
计算结果等于-50。

n =1
sum = 0
while n < 101:
x = n % 2 == 0
if x == 0:
sum = sum - n
else:
sum= sum + n
print(sum)
结果=50

请问有if n % 2 ==0 和 if x ==0 有什么区别🤔

x = (n%2 == 0)先计算后赋值,如果n%2是0,则(n%2 == 0)是1,x是1,所以和直接 n%2的结果是反的

你如果把x = n % 2 == 0写成x = n % 2的话n%2==0和x==0应该没区别。
==的·优先级比=高。
n=1取余得到1,1%0=1==0不成立,判断后输出的值是0,然后再把0的值赋给x,即x=0,执行if x==0,所以输入1的时候执行if语句。同理,n=2取余得到0,2%2=0==0成立,判断后输出的值是1,把1赋给x,n=2时就执行else。整个程序跟预期反过来了,sum就是50