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

如何实现可指定全局变量的整数输入循环函数?

问题2:动态指定全局变量接收输入的解决方案

你的代码现在的问题是硬编码了global a,没法动态切换要赋值的全局变量。要解决这个问题,我们可以利用Python的globals()字典——它能直接访问当前的全局命名空间,通过变量名字符串来动态操作全局变量。

修改后的代码如下:

def intry(var_name='a'):
    while True:
        try:
            # 先获取并转换输入为整数
            input_num = int(raw_input("请输入一个整数:"))
            # 通过globals()字典,把值赋值给指定的全局变量
            globals()[var_name] = input_num
            # 返回输入的数值,方便外部直接使用
            return input_num
        except ValueError:
            print 'Try again'

# 第一次调用,默认把输入存入全局变量a
intry()
# 第二次调用,指定把输入存入全局变量b
intry('b')
# 现在就能正常打印a + b了
print a + b

额外建议:尽量避免全局变量

其实从代码设计的角度来说,全局变量容易导致代码耦合度高、难以维护。更优雅的写法是让函数直接返回输入的整数,然后在外部自己赋值给变量:

def intry():
    while True:
        try:
            return int(raw_input("请输入一个整数:"))
        except ValueError:
            print 'Try again'

# 外部自行赋值给不同变量,逻辑更清晰
a = intry()
b = intry()
print a + b

这种写法职责更明确,函数只负责获取并验证输入,变量的管理交给外部,后续维护起来也更方便。


内容的提问来源于stack exchange,提问作者Auroni Bhattacharya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:16:43