翻转数字对程序异常求助:奇数输入时缺失末尾数字
解决奇数输入时缺失最后一个数字的问题
你的代码在处理偶数输入时正常,但遇到奇数输入会丢失最后一个数,核心原因是循环终止条件t >= num会在t等于奇数输入值时直接跳出循环,没机会打印这个数。这里提供两种修复方案:
方案一:修改循环内的判断逻辑
调整循环里的打印逻辑,当r超过输入的数字时,单独打印t;否则按原逻辑打印一对数字:
num = int(input("Please type in a number: ")) r = 2 t = 1 while True: if t > num: break if r > num: print(t) else: print(r) print(t) r += 2 t += 2
方案二:用for循环简化逻辑
利用range的步长特性,直接遍历每一组起始的奇数,先打印对应的偶数(如果存在),再打印奇数:
num = int(input("Please type in a number: ")) for i in range(1, num + 1, 2): if i + 1 <= num: print(i + 1) print(i)
两种方案都能适配奇偶输入:输入5时会输出2、1、4、3、5;输入6时输出2、1、4、3、6、5,完全符合需求。
内容的提问来源于stack exchange,提问作者user19550315
相关产品推荐
相关产品推荐

