赋值错误python 3之前引用的局部变量

2024-09-26 22:53:19 发布

您现在位置:Python中文网/ 问答频道 /正文

对于上下文,我试图创建一个程序,将计算任何给定化合物的质量。在

运行以下代码时,收到以下错误:

Traceback (most recent call last):
  File "/Users/robertg21/PycharmProjects/MolecularMassCalculator/MolecularMassCalculator.py", line 37, in <module>
    formula.insert(return_index(), "+")
  File "/Users/robertg21/PycharmProjects/MolecularMassCalculator/MolecularMassCalculator.py", line 31, in return_index
    return pos
UnboundLocalError: local variable 'pos' referenced before assignment

谁能帮忙吗。这是我的代码:

^{pr2}$

谢谢。在


Tags: 代码inpypos程序indexreturnline
1条回答
网友
1楼 · 发布于 2024-09-26 22:53:19

信息是明确的:

if element.isalpha() and element.isupper():
    pos = formula.index(element)
return pos

如果条件不符合怎么办?在

如果要返回或引用pos,则必须将其设置为某个值。在

也许你想:

^{pr2}$

这将使循环短路,从而创建一个简单的“查找”操作。如果条件从未满足,它将返回None。在

可以使用一种功能更强大的方法来表达您创建的相同结构。特别是您创建了find或{},其形式如下:

for item in coll
    if pred(item)
        return item

因此,您可以定义pred并使用next(filter(pred, coll))达到相同的效果:

def is_element(element):
    return item.isalpha() and item.isupper()

然后:

element = next(filter(is_element, formula))

相关问题 更多 >

    热门问题