Python实现1-100被3或5整除输出cot的代码问题排查
问题原因
- 代码第一行的
print(i)是无条件执行的,不管数字是否满足被3或5整除的规则,都会先输出数字本身,这是出现多余输出的核心原因 - 现有
if-elif的分支逻辑虽然在当前场景下不会导致功能错误,但如果后续需要调整3和5对应不同的输出内容,同时被3和5整除的数字只会触发第一个分支的逻辑,可扩展性较差
修复代码
遍历1到100的完整可运行代码如下:
for i in range(1, 101): # 先判断是否满足整除条件 if i % 3 == 0 or i % 5 == 0: print("cot") # 不满足条件才输出原数字 else: print(i)
修复说明
- 移除了最开头的无条件
print(i),改为先做条件判断,完全符合「满足条件替换输出为cot,否则输出原数字」的需求 - 用
or逻辑合并判断规则,同时覆盖被3整除、被5整除、同时被3和5整除三种场景,不会出现重复输出问题 - 如果后续需要区分3的倍数和5的倍数输出不同内容,也可以用变量先存输出内容再打印,示例如下:
for i in range(1, 101): output = str(i) if i % 3 == 0: output = "cot" if i % 5 == 0: output = "cot" print(output)
内容的提问来源于stack exchange,提问作者idksomany
相关产品推荐
相关产品推荐

