Python 3 中括号未显示为闭合

Bracket not showing as closed in Python 3

我刚刚开始学习 Python 3.9 作为我的第一语言。我已经和这个错误斗争了一段时间了,我不知道问题出在哪里。

这是我正在做的事情:

def eval_express(eqstring[0], eqstring[1], eqstring[2]):
    eqstring[0], eqstring[2] = float(eqstring[0]), float(eqstring[2])
    return opdict[eqstring[1]](eqstring[0], eqstring[2])

我收到一个错误,说 eval_express 之后的“(”没有关闭,但据我所知是关闭的。起初,我以为这只是一个小故障,但尽管有很多尝试重写它,increase/decrease参数的数量等。它仍然存在。在我将参数从变量修改为列表项后出现错误,但我不明白为什么会影响它。任何人都可以提供澄清一下程序挂断了什么?

感谢您的帮助!

您在函数参数中使用了无效的方括号。有效代码为:

def eval_express(eqstring0, eqstring1, eqstring2):
    eqstring0, eqstring2 = float(eqstring0), float(eqstring2)
    return opdict[eqstring1](eqstring0, eqstring2)

尽管您可能应该使用更具描述性的参数名称。

在为函数输入参数时不能使用 parameter[] 表示法。相反,只需使用 parameter,否则您将不得不执行类似

的操作
def eval_express(eqstring):
    eqstring[0], eqstring[2] = float(eqstring[0]), float(eqstring[2])
    return opdict[eqstring[1]](eqstring[0], eqstring[2])

现在你必须传递一个数组作为函数参数。