Python中while循环多条件设置错误,无法正确输出目标数值
问题分析与解决
你的代码错误在于while循环的条件逻辑颠倒了:
原循环要求i同时满足「被3整除」「被5整除」「小于n」才会执行循环体。当i=0时满足所有条件,执行打印后i变为1,此时1既不能被3整除也不能被5整除,循环条件不成立,直接终止,所以只输出了0。
修正方案1:调整条件位置
把「同时被3和5整除」的判断放到循环内部,while循环只保留i < n的条件:
n = eval(input("Number: ")) i = 0 while i < n: if i % 3 == 0 and i % 5 == 0: print(i, end=" ") i = i + 1
修正方案2:利用最小公倍数优化
因为同时被3和5整除的数是它们的最小公倍数15的倍数,所以可以直接让i每次增加15,减少循环次数:
n = eval(input("Number: ")) i = 0 while i < n: print(i, end=" ") i += 15
输入100时,两种方案都会输出:0 15 30 45 60 75 90
内容的提问来源于stack exchange,提问作者jayem
相关产品推荐
相关产品推荐

