如何将字符串转为变量调用并获取变量内容?Python场景问询
根据输入动态获取对应选项文本的解决方案
你的代码里直接尝试拼接变量名Choice_ + decision是行不通的,Python无法通过这种方式直接调用变量。下面提供两种可行的解决方法:
方法一:使用字典(推荐)
用字典存储选项的键值对应关系,是最规范、安全的做法:
def blab(decision): choices = { "0": "Python Ideas", "1": "Website Ideas", "2": "Discord Ideas", "3": "Game Ideas", "4": "Robot Ideas" } # 把decision转为字符串匹配字典键,若为整数也可直接用整数作为键 real_choice = choices.get(str(decision), "Invalid Choice") deci = input(f"You chose {real_choice}")
- 字典通过键值对映射选项编号和文本,直观易维护
- 用
get()方法可以处理输入无效的情况,返回默认提示语
方法二:通过作用域字典取值(不推荐)
可以利用locals()或globals()获取当前作用域的变量字典,拼接变量名后取值,但这种方式不够直观且存在安全风险:
def blab(decision): Choice_0 = "Python Ideas" Choice_1 = "Website Ideas" Choice_2 = "Discord Ideas" Choice_3 = "Game Ideas" Choice_4 = "Robot Ideas" var_name = f"Choice_{decision}" real_choice = locals().get(var_name, "Invalid Choice") deci = input(f"You chose {real_choice}")
locals()返回当前函数内的变量字典,通过拼接的变量名作为键取值- 不推荐使用:如果输入的
decision是恶意构造的字符串,可能会意外访问到其他变量
内容的提问来源于stack exchange,提问作者GOODTOAD
相关产品推荐
相关产品推荐

