如何修改Python函数实现存储所有输入数字并在循环结束后打印?
解决存储输入数字并在循环结束时打印的问题
我来帮你搞定这个需求!你想要把所有输入的数字都存起来,只在退出程序的时候再打印它们对吧?先看看你原来代码里的几个小问题:
- 没有用合适的容器(比如列表)保存每个输入的数字,只是用
a累加了总和,所以没法输出单个的数字 - 代码里的
k=n+1这行,n根本没定义,运行起来会直接报错 - 最后那个
else分支没写完,没法处理像符号这类既不是字母也不是数字的输入
给你调整后的代码,完美满足你的需求:
def compare(): # 用列表专门存储所有输入的有效整数 stored_numbers = [] while True: user_input = input("Enter an integer (or 'Q' to quit): ") # 先判断是不是退出指令,不区分大小写 if user_input.upper() == "Q": # 循环结束,开始打印结果 print("Digits:") for num in stored_numbers: print(num) # 计算总和并打印 total_sum = sum(stored_numbers) print(f"\nTotal: {total_sum}") break # 检查输入是否是有效整数 if user_input.isdigit(): stored_numbers.append(int(user_input)) else: # 所有无效输入统一提示 print("Invalid Value. Enter again.")
关键修改说明:
- 新增了
stored_numbers列表,专门用来存每个输入的有效数字,这样在循环结束时就能逐个打印出来 - 去掉了原代码里没用的
a变量,用sum(stored_numbers)直接计算总和,更简洁直观 - 调整了判断顺序:先检查是否是退出指令,逻辑更清晰,不用绕多个elif分支
- 简化了错误提示:只要不是Q也不是有效数字,统一提示错误,避免原代码分支冗余的问题
- 修复了原代码中未定义变量的错误,保证运行不会报错
内容的提问来源于stack exchange,提问作者Puru
相关产品推荐
相关产品推荐

