如何用Python的while循环输出0到10并跳过5和8?
问题分析与解决
你写的代码存在几个关键问题:
- 重复调用
print(i),导致每个符合条件的数字会被输出两次 - 使用
break会直接终止整个循环,而非跳过5和8,所以当i=5时循环直接结束,根本不会处理后面的6、7等数字 - 变量
i的递增逻辑放在if判断之后,一旦触发break,后续数字的循环流程直接中断
正确实现代码
方法一:判断后打印
i = 0 while i <= 10: # 仅打印非5、非8的数字 if i != 5 and i != 8: print(i, end=',') # 无论是否打印,都必须让i递增,避免死循环 i += 1
方法二:用continue跳过指定数字
i = 0 while i <= 10: # 如果是5或8,先递增i再跳过当前循环 if i == 5 or i == 8: i += 1 continue print(i, end=',') i += 1
两种方法的输出结果均为:0,1,2,3,4,6,7,9,10,(若不想末尾带逗号,可先将数字存入列表,再用','.join(map(str, 列表))统一输出)
内容的提问来源于stack exchange,提问作者mohammad Umer
相关产品推荐
相关产品推荐

