Python如何筛选区间内能被2整除但不能被3整除的数字并打印?
问题原因
你现有代码的执行顺序有问题:
- 先判断x能被2整除就直接打印,之后才校验是否能被3整除,哪怕x同时满足被3整除的条件,也已经完成打印操作才执行continue,所以会输出6、12这类不符合要求的数字
- 另外
range(n1, n2)是左闭右开区间,不会包含n2本身,若题目要求统计范围包含n2,需要调整为range(n1, n2 + 1)
修复代码
方案1:合并判断条件(写法更简洁)
for x in range(n1, n2 + 1): # 同时满足能被2整除、不能被3整除才打印 if x % 2 == 0 and x % 3 != 0: print(x)
方案2:保留continue写法(调整判断顺序)
for x in range(n1, n2 + 1): # 不能被2整除直接跳过 if x % 2 != 0: continue # 能被3整除直接跳过 if x % 3 == 0: continue # 剩余符合要求的才执行打印 print(x)
内容的提问来源于stack exchange,提问作者code_crusader
相关产品推荐
相关产品推荐

