[英]Return Variable Referenced Before Assignment
这是我的代码:
def HTR(S, T):
while S == 1:
Z = 60
if (S == 2):
Z = 60 + (60*.5)
elif (S == 3):
Z = 60*2
else:
Z = 0
return Z
这是我得到的错误:
return Z
UnboundLocalError: local variable 'Z' referenced before assignment
您必须在进入while loop
之前定义Z
; 否则,如果S != 1
,则在尝试返回时不会进入循环并且Z
未定义:
def HTR(S, T):
Z = None #<-- choose the value you wish to return is S != 1
while S == 1:
Z = 60 #<-- Z is set to 60
if (S == 2): #<-- S already equals 1 at this point
Z = 60 + (60*.5)
elif (S == 3): #<-- S already equals 1 at this point
Z = 60*2
else:
Z = 0 #<-- then Z is always set to zero
# this is probably not the behavior you are expecting!
return Z
def HTR(S, T):
Z = -1 # init Z
while S == 1:
Z = 60
if (S == 2):
Z = 60 + (60*.5)
elif (S == 3):
Z = 60*2
else:
Z = 0
return Z
在您的代码中,如果 S 不是 1,则不会设置 z。您需要为 Z 提供一个初始值。如果 S 不是 1,则将返回 -1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.