Python 在赋值错误之前引用的变量,即使在使用全局变量之后也是如此

Python 在赋值错误之前引用的变量,即使在使用全局变量之后也是如此,python,python-3.x,Python,Python 3.x,我正在pyqt5类中的函数中使用此代码 print(len(k)) print(len(u)) if len(k) / 3 < len(u): c = len(k) / 3 + 1 c = round(c, 0) elif len(k) / 3 < len(u): c = len(u) + 1 print(c) 我正在使用pyt

我正在pyqt5类中的函数中使用此代码

        print(len(k))
        print(len(u))

        if len(k) / 3 < len(u):
            c = len(k) / 3 + 1
            c = round(c, 0)
        elif len(k) / 3 < len(u):
            c = len(u) + 1

        print(c)
我正在使用python3.6,问题是:

    if len(k) / 3 < len(u):
        c = ...
    elif len(k) / 3 < len(u):
        c = ...
如果len(k)/3
首先,条件(
len(k)/3
)是相同的,并且永远不会执行
elif
未使用变量
-条件出现,因为两个臂都不能执行;然后,
c
未定义。使用捕获该值的
else
块,例如,如果len(k)/3ValueError
    if len(k) / 3 < len(u):
        c = len(k) / 3 + 1
        c = round(c, 0)
    elif len(k) / 3 < len(u):
        c = len(u) + 1

    print(c)
c=len(k)/3+1 c=圆形(c,0) elif len(k)/3

首先,两个条件都是一样的!(这不应该打扰您的IDE,因为它可能无法分析那么远),但更重要的是您缺少了一个
否则:
因此可能
c
无法定义。

为什么
if
elif
中的条件相同?条件中的输入错误,警告仍然存在(变量可能在赋值之前被引用),关于
len(k)/3==len(u)
?添加一个else语句澄清了一切:)Thaks指出,这是一个打字错误(可能是由于大量的点击和试用方法造成的)它确实删除了python不响应错误,并使用else语句删除了导致警告的警告toomissin else语句:)是的,这是意料之中的。但也要修复相同的条件(在代码中出现两次)哦,您编辑了它。我们将还原它,当其他人应答时,您不应该编辑和修复您的代码。这使得答案毫无意义。
    if len(k) / 3 < len(u):
        c = ...
    elif len(k) / 3 < len(u):
        c = ...
    if len(k) / 3 < len(u):
        c = len(k) / 3 + 1
        c = round(c, 0)
    elif len(k) / 3 < len(u):
        c = len(u) + 1

    print(c)