Python中如何根据用户输入内容打印对应变量存储的字符串
实现根据用户输入的变量名打印对应变量值的方法
实现思路
你需要将用户输入的字符串形式的变量名,映射到当前代码环境中实际的变量上,优先推荐用内置的作用域字典实现,避免eval带来的代码注入安全风险。
- 方法1:使用
locals()/globals()字典获取(推荐)locals()会返回当前局部作用域所有变量组成的字典,键是变量名,值是变量对应的值,直接从里面取值即可,找不到还可以加默认提示避免报错。
代码示例:
x = '123' # 接收用户输入 input_var = input("请输入要查询的变量名:") # 从局部变量字典取值 print(locals().get(input_var, "不存在对应变量"))
如果你的变量是全局定义的,把locals()换成globals()效果完全一致。
- 方法2:使用
eval()(不推荐,仅作参考)eval()可以执行传入的字符串代码,虽然能直接拿到变量值,但如果用户输入恶意代码会直接执行,有极高的安全隐患,非特殊场景不要用。
代码示例:
x = '123' input_var = input("请输入要查询的变量名:") try: print(eval(input_var)) except NameError: print("不存在对应变量")
内容的提问来源于stack exchange,提问作者mnbvfkd58
相关产品推荐
相关产品推荐

