Python程序求助:输入5个整数需反向输出为54321的代码修正
问题分析与修改方案
你的代码逻辑是把每次输入的数字追加到结果的末尾,所以输入1、2、3、4、5后会得到12345。要实现倒序拼接出54321,需要把新输入的数字放到当前结果的前面。
修改后的代码
rev = 0 power = 1 t = 1 while t <= 5: n = int(input("Enter a number:")) # 将新输入的数字放在当前结果的高位 rev = n * power + rev # 更新权重,确保下一个数字对应更高位数 power *= 10 t += 1 print(f"Output: {rev}")
修改说明
- 新增
power变量,用来记录当前新输入数字需要乘的权重(初始为1,对应个位)。 - 把原来的
rev = rev * 10 + a改为rev = n * power + rev,这样每次新输入的数字会被放到当前结果的前面(比如输入2时,得到210+1=21,而非110+2=12)。 - 每次循环后将
power乘以10,确保下一个输入的数字能对应十位、百位等更高位数。 - 去掉了多余的
a = n % 10和n = n // 10,因为你输入的都是个位数,这两行没有实际作用。
如果想更简洁,也可以先收集所有输入再反转拼接:
nums = [] for _ in range(5): nums.append(input("Enter a number:")) result = int(''.join(reversed(nums))) print(f"Output: {result}")
内容的提问来源于stack exchange,提问作者RandomIT_Student1
相关产品推荐
相关产品推荐

