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

如何让Python中用户输入的operator作为运算符执行两数运算?

问题原因
  • 现有代码的核心错误是float(First) Operator float(Second)不符合Python语法规则:Python无法直接把字符串类型的运算符变量当做运算符号直接使用
  • input函数默认返回字符串类型,就算你把两个操作数转成了float类型,也不能直接和字符串运算符拼接执行运算
解决方案1:条件分支判断(推荐,无安全风险)

逻辑清晰可控,支持自定义边界校验,不会产生恶意代码执行风险,适合所有场景使用:

# 提前把输入的数字转成float类型
first = float(input("First Number: "))
operator = input("Operator: ")
second = float(input("Second Number: "))

if operator == '+':
    res = first + second
elif operator == '-':
    res = first - second
elif operator == '*':
    res = first * second
elif operator == '/':
    # 额外增加除零判断避免报错
    if second == 0:
        print("错误:除数不能为0")
        exit()
    res = first / second
else:
    print("错误:不支持的运算符,请输入+、-、*、/中的一种")
    exit()

print(res)
解决方案2:eval实现(简洁但有安全风险)

如果只有你个人使用,不存在外部用户输入的场景,可以用eval简化代码:

first = input("First Number: ")
operator = input("Operator: ")
second = input("Second Number: ")

try:
    res = eval(f"{float(first)} {operator} {float(second)}")
    print(res)
except ZeroDivisionError:
    print("错误:除数不能为0")
except SyntaxError:
    print("错误:不支持的运算符")

注意:eval会执行传入的任意代码,如果是对外提供的功能不要使用该方案,避免恶意代码执行风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:57:04