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

为什么这样写不对呀

http://img1.sycdn.imooc.com//5aa24542000127f301790196.jpg这样写为什么不对呀,哪里错啦?

正在回答

8 回答

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
task.py
对已有的计算 0 - 100 的while循环进行改造,通过增加 continue 语句,使得只计算奇数的和:

sum = 0
x = 1
while True:
    sum = sum + x
    x = x + 1
    if x > 100:
        break
print sum
'''

sum = 0.0
x = 0
while True:
    x = x + 1
    if x > 100:
        break
    if not x % 2 :           # 当x= 奇数时,3 % 2 = true , not 3%2 = not(非空字符串true),为false;
        continue             # 当x = 偶数时,4 %2 =0 ,python规定0 是flase ,not 4 % 2 = true。
    print x                  # 如果 if 语句判断为 True,就会执行这个代码块,所以这代码过滤的是偶数
    sum = sum + x
print sum


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

先判断x是否是偶数,就会直接跳出开始下一次循环,x还没来得及增加,一直是2,成了死循环

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

当x=2时,会死循环

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

当经过第一次循环后x的值就变成了2,此时 x % 2的值就总是等于0了,正有程序就会反复执行第三行到第五行的代码,进入死循环了。把代码修改成下面的样子就好了:

sum = 0
x = 1
while True:
    sum = sum + x
    x = x + 1
    if x > 100:
        break;
    if x % 2 == 0:
        continue
print sum


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

 x = x + 1

 放到上面,避免

偶数时

if x % 2 == 0:

永远成立造成死循环

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

sum = 0

x = 0

while True:

    x = x + 1

    if x > 100:

        break

    if x % 2 == 0:

        continue

    sum = sum + x

print sum


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

你想想当你的x是偶数时,它是不是一直就在x%2==0那一直死循环了

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

x为偶数时出现死循环,在continue前要使x加1

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

举报

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

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

进入课程

为什么这样写不对呀

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