为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个运行等于0

num = 1

sum = 0

mo = num % 2

while True:

    if num > 1000:

        break

    if mo == 0:

        sum = sum + num

    num = num + 1

print (sum)



正在回答

1 回答

因为num % 2 的结果是取余,当num=1时,mo的结果就是1,所以你下面的if mo == 0:就不会生效。

0 回复 有任何疑惑可以回复我~
#1

qq_慕勒7425684 提问者

那答案里是一开始赋值num=0,第一次循环后不是也是num=1了,第二次循环及以后不就就和我的代码一样了吗,但是答案就是正确的,不像我想的那样=0.大佬求解。 参考答案: num = 0 sum = 0 while True: if num > 1000: break if num % 2 == 0: sum = sum + num num = num + 1 print(sum)
2022-10-28 回复 有任何疑惑可以回复我~
#2

qq_慕勒7425684 提问者

哦知道了,是不是mo = num % 2赋值没有包含在循环里面
2022-10-28 回复 有任何疑惑可以回复我~
#3

weixin_慕侠6136764 回复 qq_慕勒7425684 提问者

你在运行时,使用 mo = num % 2进行赋值,结果是 mo = 1;在整个代码运行过程中,第一个if 和第二个if都不会被执行,唯一被改变的只有num变量;所以输出sum的结果必然为0,你将mo的值改为偶数,就会有你想要的结果;
2022-11-03 回复 有任何疑惑可以回复我~
#4

weixin_慕侠6136764 回复 weixin_慕侠6136764

说错了,是重新定义一个变量 X = (偶数); mo = X % 2,即可
2022-11-03 回复 有任何疑惑可以回复我~
#5

嘿呀2021 回复 weixin_慕侠6136764

mo = num % 2 没放在循环里,把它放在num = num + 1下面对齐就行,同时最上面的num=1改成num=0
2022-11-10 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

为什么这个运行等于0

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信