如何实现输入变量名后输出对应Python变量的值?
解决Python输入变量名获取对应值的问题
你当前的代码里,input()获取的是字符串类型的变量名,直接打印只会输出这个字符串。要拿到对应变量的实际值,有两种常用方案:
方案一:利用全局命名空间字典globals()
全局变量会被存储在globals()返回的字典中,键是变量名的字符串,值是变量的实际值。可以通过字典的get()方法获取对应值,还能处理变量不存在的情况:
a = 20 b = 3 c = 32 d = 63 name = input("Variable name:") # 若变量存在则输出值,否则返回提示文本 print(globals().get(name, "该变量不存在"))
方案二:用字典统一管理变量(更安全推荐)
把需要查询的变量都放到一个字典里,通过字典查询对应值,这种方式避免了直接操作全局命名空间,安全性和可读性更好:
# 用字典存储所有需要查询的变量 var_dict = { "a": 20, "b": 3, "c": 32, "d": 63 } name = input("Variable name:") print(var_dict.get(name, "该变量不存在"))
⚠️ 注意:别用eval(name)来实现,这种方式存在严重安全风险——如果用户输入恶意代码(比如__import__('os').system('危险命令')),会直接执行,导致系统被破坏。
内容的提问来源于stack exchange,提问作者Danylo Khomyshyn
相关产品推荐
相关产品推荐

