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

Python中如何将input输入的字符串匹配为对应变量参与运算

解决方法

方案1:字典映射(最推荐)

通过手动构建允许被调用的变量和字符串的映射字典,完全可控无安全风险,同时方便做输入合法性校验。
示例代码:

a = 1
b = 2
c = 3

# 构建字符串和对应变量的映射关系
var_mapping = {
    "a": a,
    "b": b,
    "c": c
}

x = input("a/b/c")
if x in var_mapping:
    solution = 7 * var_mapping[x]
    print(solution)
else:
    print("非法输入,请输入a、b、c中的一个")

方案2:调用globals()方法(仅信任场景可用)

globals()是Python内置方法,会返回当前全局作用域下所有变量组成的字典,可直接用输入的字符串作为键获取对应变量值。
示例代码:

a = 1
b = 2
c = 3

x = input("a/b/c")
if x in globals():
    solution = 7 * globals()[x]
    print(solution)
else:
    print("非法输入")

注意:该方法存在安全风险,若用户输入其他全局变量的名称,可直接访问到对应值,若代码中存在密码、密钥等敏感变量会发生泄露,不建议在面向非信任用户的场景中使用。

方案3:eval()执行字符串代码(极不推荐)

eval()可以直接执行字符串格式的Python代码,可实现需求,但安全风险极高:若用户输入恶意代码,会被直接执行,可能造成数据丢失、系统损坏等严重后果,仅做原理科普,禁止在正式场景使用。
示例代码:

a = 1
b = 2
c = 3

x = input("a/b/c")
# 风险极高,不要使用
solution = 7 * eval(x)
print(solution)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:00:00