lsmCC 发表于 2022-9-27 11:21:27

大佬看一下哪里出错了

大佬看一下

Twilight6 发表于 2022-9-27 11:26:12


一眼看过去,字符啥的好像都没什么问题

应该是因为你第一个 if 前面的缩进错了,明显和 if 下的代码缩进宽度不同,重新打一个缩进(等于四个空格)

如果还是报错,把报错内容或代码发上来,或者检查检查自己代码的字符是否使用了中文字符

z5560636 发表于 2022-9-27 11:53:19

i = i + 1 的位置放在 if 语句外面

qq1151985918 发表于 2022-9-27 12:04:27

i = i + 1 放在 if 外面,另外,最后一句print里面应该是 sum 你拼写错误

Brick_Porter 发表于 2022-9-27 12:57:43

分析下过程你就知道了。当i=0的时候满足循环条件,进入while循环;0%2等于0,然后让sum的值累加1,i也累加1。问题来了,i累加1之后结果变成了1,1<1000000但是1%2不等于0,所以循环可以继续,但是if语句一直不满足条件,整个程序变成了死循环。

解决办法有二:
1. 把第6行的数字1改成2,i从0开始每次累加2结果也还是偶数;
2. 减少第6行的缩进,让它和第4行对齐。如此一来不论是否执行if语句i的值都会增加1,循环必然停下

jackz007 发表于 2022-9-27 12:58:55

本帖最后由 jackz007 于 2022-9-27 13:12 编辑

sum = 0
i = 0
while i < 1000000:
    if i % 2 == 0:
      sum = sum + i
    i = i + 1                     # 此句不应该归属 if 语句,原缩进位置有误,已经改正

print("1000000 以内所有偶数的和" , sum)
      或者,干脆去掉 if
sum = 0
i = 0
while i < 1000000:
    sum = sum + i
    i = i + 2

print("1000000 以内所有偶数的和" , sum)

wyh551202 发表于 2022-9-27 16:43:20

我赞同楼上观点,需要姜i=i+1放在外面{:10_256:}
sum=0
i=0
while i < 1000000:
    i=i+1#不放外面第一次进来是0,程序不在运行whil循环
    if i % 2 == 0:
      print(i)
      sum=sum+i
print('1000000以内所有偶数的和:',sum)
页: [1]
查看完整版本: 大佬看一下哪里出错了