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

如何用变量的值作为另一个变量名来存储输入信息?

解决方案

推荐方法:用字典存储(安全且易维护)

这是Python处理动态命名存储的最佳实践,避免直接操作命名空间带来的风险。

修改后的代码:

a = ""  # 初始值设为空字符串,原代码a=0会导致循环无法终止
b = 0
c = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t']
# 创建字典映射变量名与输入值
input_storage = {}

while a != '':
    b += 1
    # 防止索引越界
    if b >= len(c):
        print("可用变量名已耗尽")
        break
    d = c[b]
    input_val = input('Enter row: ')
    # 将输入值存入字典,键为d对应的字符串(即目标变量名)
    input_storage[d] = input_val
    # 提供循环终止入口
    a = input("输入空字符串结束循环:")

# 示例:获取'f'对应的输入值
print(input_storage.get('f', '未输入'))

不推荐方法:动态创建变量

如果一定要直接生成以d值为名称的变量,可通过globals()或locals()操作命名空间,但这种方式易引发命名冲突、增加调试难度,不建议用于实际项目。

示例代码:

a = ""
b = 0
c = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t']

while a != '':
    b += 1
    if b >= len(c):
        print("可用变量名已耗尽")
        break
    d = c[b]
    input_val = input('Enter row: ')
    # 动态创建全局变量
    globals()[d] = input_val
    a = input("输入空字符串结束循环:")

# 此时可直接使用变量f
print(f)

原代码注意点:

  • 初始a=0会导致while a is not ''永远为真(0和空字符串不是同一对象),循环无限执行,需改为a != ''并将a初始化为空字符串。
  • 未处理b超出列表c长度的情况,需添加索引越界判断避免报错。

内容的提问来源于stack exchange,提问作者C0D3R M4DN3SS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:15:36