我在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)
这里k和你是名单
我的IDE(PyCharm)发出警告&#34;在分配之前引用变量&#34;将鼠标悬停在变量&#34; c&#34; line&#34; print(c)&#34;
输出打印为 8 2 之后,python停止了工作
其中8和2是列表的长度
我尝试将函数和全局变量用作
print(len(k))
print(len(u))
def getvar(a,b):
global c
if a / 3 < b:
c = a / 3 + 1
c = round(c, 0)
elif a / 3 < b:
c = b + 1
return c
print(getvar(len(k),len(u)))
这是打印 8 2
再次python停止工作
有人可以建议我如何解决这个问题。
PS所有这些代码都在pyqt5类中的函数内部
e.g。
class Ui_Dialog(object):
def setupUi(self, Dialog):
...some..code..
self.startBtn.clicked.connect(self.run)
def run(self):
...some..code..
** code mentioned above**
我正在使用python3.6
答案 0 :(得分:4)
问题在于:
if len(k) / 3 < len(u):
c = ...
elif len(k) / 3 < len(u):
c = ...
首先,条件(len(k) / 3 < len(u)
)是相同的,并且elif
不会被执行。出现unused variable
- 条件是因为两个武器都不会被执行;然后c
未定义。使用可捕获该else
块的ValueError
块,例如通过提出{{1}}。
答案 1 :(得分:3)
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)
首先,两个条件都是一样的! (这不应该打扰你的IDE可能无法分析那么远),但更重要的是你错过了else:
,因此c
可能未定义。