编程新手求助:输出3的倍数的while语句无法运行,求排查语法错误
帮你搞定while循环的问题!
嘿,作为编程新手遇到这种小问题太正常啦,我帮你拆解下代码里的几个关键错误:
- 循环范围不对:你要找0到100之间的数,但代码里写的是
while counter3 <= 1000,这会让循环跑到1000,明显超出需求啦。 - 倍数判断逻辑和语法错误:判断一个数是不是3的倍数,应该看这个数除以3的余数是不是0,也就是
counter3 % 3 == 0,而你写的if 3 % counter3 : True完全搞反了逻辑,而且语法也不对——if后面直接写判断条件就行,不需要加: True。 - 计数器更新位置错误:你现在只在满足条件的时候才给
counter3加1,那如果某个数不是3的倍数,counter3就不会变,循环会一直卡在这个数上,变成无限循环!应该不管是否满足条件,每次循环结束都要让计数器加1。
给你修正后的代码:
counter3 = 0 # 从0开始,因为0也是3的倍数哦 theList = [] while counter3 <= 100: if counter3 % 3 == 0: theList.append(counter3) counter3 += 1 # 不管是否满足条件,每次都递增计数器 print(theList)
另外补充个小技巧:其实用for循环做这个会更简洁,比如:
theList = [num for num in range(0, 101) if num % 3 == 0] print(theList)
不过既然你在练习while循环,先把上面的修正版搞懂就好啦!
内容的提问来源于stack exchange,提问作者JoeDoe
相关产品推荐
相关产品推荐

