You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:21:38