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

这样做为什么不对?结果一直输出1

sum = 0
x = 1
while (x <= 100) and (x%2 == 1)  :
    sum = sum + x
    x = x + 1
print sum

正在回答

5 回答

在while的第二次循环开始时,x已经值为2,所以条件判断为false,即退出while循环,导致sum值只能为1

所以可以看出while循环的判断条件有问题,应该使用if语句结构,将这条判断语句x%2 == 1内置在循环体以内。



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

dong_brother 提问者

非常感谢!
2018-07-19 回复 有任何疑惑可以回复我~

因为当第一次循环完后,第二次就进不了循环了,x的值就一直是2


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

while 语句里是判断条件真假,之后执行命令。而且条件语句里一般不用A and B模式

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

第二次x的值为2,所以x%2==1这个条件不成立,所以会退出while循环,直接输出sum=1;你可以把(x%2==1)

改成 if x%2==0:

         continue

把这条语句加到while循环里面去

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

x = 1 的时候,条件一成立,x%2 == 1,条件成立,运行代码块得到sum = 1,x =2。继续循环,x=2,条件一为true,条件二x%2==1不成立为false,and是且,所以最后为false,循环结束。

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

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

这样做为什么不对?结果一直输出1

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