stanley-cheung 发表于 2020-10-15 05:39:23

求助while语句无法运行也不报错

题目是列出2000到3200可以被7整除但是无法被5整除的数字,且同行逗号隔开..


number = 2000
while number <= 3200:
    if number % 7==0 and number % 5!=0:
      print(number,end=',')
      number += 1

   想知道哪里错了,在结尾加了break 或者 continue都不行~

wp231957 发表于 2020-10-15 07:09:07

number+=1放在if语句里是神马鬼

hrp 发表于 2020-10-15 07:14:12

number = 2000
while number <= 3200:
    if number % 7==0 and number % 5!=0:
      print(number,end=',')
    number += 1 # 这里要减少一级缩进,与if同级,表示不论是否符合if条件,都会执行number+=1,你原来的写法是只有符合if条件才会加1,导致一开始第一个不符合条件的数就不能加1而一直死循环。

笨鸟学飞 发表于 2020-10-15 09:00:42

number = 2000                     
while number <= 3200:
    if number % 7==0 and number % 5!=0:   
      print(number,end=',')
      number += 1                         #if的结果为True,则会运行这行,否则不运行。你应该把number的缩进和if对齐

tys88 发表于 2020-10-15 13:57:44

这就是我们初学者常犯的错误,对齐的位置还是非常重要的,继续加油

hyl_0718 发表于 2020-10-15 14:46:00

number = 2000                     
while number <= 3200:
    if number % 7==0 and number % 5!=0:   
      print(number,end=',')
      number += 1                  
这个小程序只会执行一次number等于2000,就会退出了,因为2000不符合if为True 的输出,而number+1在这个程序中亦属于if 条件为True时才能执行,所以什么输出都没有;number+1要 在 if 程序段外且在while程序段里执行才能生效。

laoyang123 发表于 2020-10-17 20:20:08

缩进闹得鬼
页: [1]
查看完整版本: 求助while语句无法运行也不报错