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

Python如何捕获print()输出并将每次内容分别存入不同变量?

实现方案

不推荐动态生成独立变量,Python中用列表/字典存储批量同类型数据是更规范、易维护的方案,以下是具体实现:

方案1:用列表存储所有结果(推荐)

每次匹配到的结果会按顺序存入列表,第1次运行的结果存在下标0的位置,第2次存在下标1,以此类推,取用非常方便。

# 初始化空列表存储所有输出结果
output_results = []
while True:
    CodeWord = str(input("Code-word: "))
    Stop = ["Stop", "Exit", "End", "Terminate"]
    if CodeWord in Stop:
        exit("User Terminate")
    # 每次匹配前重置CodeNum,修复原代码后续无法匹配前序编码的问题
    CodeNum = 0
    while CodeNum < 55:
        if CodeWord == CodeWordsUpC[CodeNum]:
            current_val = LettersUpC[CodeNum]
            print(current_val)
            # 将当前结果追加到列表
            output_results.append(current_val)
            break
        else:
            CodeNum = CodeNum + 1

需要取用时直接按索引取值即可,例如取第3次的结果用output_results[2]。

方案2:用字典存储带自定义命名的结果(需要独立标识时可选)

如果一定要给每个结果加独立的名称标识,可以用字典存储:

output_dict = {}
count = 1
while True:
    CodeWord = str(input("Code-word: "))
    Stop = ["Stop", "Exit", "End", "Terminate"]
    if CodeWord in Stop:
        exit("User Terminate")
    CodeNum = 0
    while CodeNum < 55:
        if CodeWord == CodeWordsUpC[CodeNum]:
            current_val = LettersUpC[CodeNum]
            print(current_val)
            # 自定义键名,比如result_1、result_2以此类推
            output_dict[f"result_{count}"] = current_val
            count += 1
            break
        else:
            CodeNum = CodeNum + 1

需要取用时直接按键取值即可,例如取第1次的结果用output_dict["result_1"]。

注:不推荐直接在全局动态创建独立变量,这种写法会导致代码难以调试,变量作用域不好控制,也不符合Python编码规范,日常使用列表/字典完全可以覆盖需求。

内容的提问来源于stack exchange,提问作者Samuel Sargent

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:00:00