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

如何在递归函数中使用元组实现表达式求值?

递归实现嵌套表达式求值函数

你需要实现的递归函数要求如下:

  • 输入是包含3个元素的元组:第1、3个元素可以是数字或同结构的嵌套元组,第2个元素是表示运算的字符串(支持+、-、*、/)
  • 示例输入(10, '-', (5, '*', 3))应返回-5

你当前的代码仅能处理左右元素都是数字的情况,无法处理嵌套元组,只需在计算前先对左右元素递归求值即可解决问题。修改后的代码如下:

def evaluate(equation):
    # 递归处理左操作数:如果是元组就递归求值,否则直接用原数字
    left = evaluate(equation[0]) if isinstance(equation[0], tuple) else equation[0]
    # 递归处理右操作数
    right = evaluate(equation[2]) if isinstance(equation[2], tuple) else equation[2]
    
    # 根据运算符计算结果
    if equation[1] == "+":
        return left + right
    elif equation[1] == "*":
        return left * right
    elif equation[1] == "-":
        return left - right
    elif equation[1] == "/":
        return left / right

代码说明

  • 核心逻辑:不管左/右操作数是数字还是嵌套元组,都先通过递归调用evaluate函数拿到其最终的数值结果
  • 用isinstance判断类型比直接用type更灵活,能兼容子类情况
  • 把运算逻辑放在递归求值之后,无需再判断左右是否为元组,简化了代码结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:56:06