如何使用while循环?Python循环错误排查与需求实现咨询
问题分析与修复
你的代码只输出50就陷入死循环(看起来像停止),问题出在两处:
- 多余的
elif分支导致死循环:当number % 5 == 1时执行continue,但此时没有对number做递减操作,导致这个数字永远不会变化,循环条件number >=0始终成立,程序卡在循环里无法继续。 - 冗余的赋值语句:最后一行
number = number = number -1完全可以简化为number -=1,不影响功能但更简洁。
正确实现代码
要实现从50到0递减,仅打印能被5整除的数字,核心逻辑是无论是否打印,每次循环都要让数字递减1,避免死循环。这里提供两种清晰的写法:
写法一(直接判断后统一递减)
number = 50 while number >= 0: if number % 5 == 0: print(number) number -= 1 # 不管是否满足打印条件,都执行递减
写法二(用continue提前跳过打印逻辑)
number = 50 while number >= 0: if number % 5 != 0: number -= 1 continue # 跳过打印,直接进入下一次循环 print(number) number -= 1
两种写法都能正确输出50,45,40,...,0,完全符合需求。
内容的提问来源于stack exchange,提问作者Reyan-droid
相关产品推荐
相关产品推荐

