作者:苏佡挖图组糖最棒 | 来源:互联网 | 2023-09-18 19:30
我也试过寻找答案,但我不明白其他人类似问题的答案……
tfile= open("/home/path/to/file",'r')
def temp_sky(lreq, breq):
for line in tfile:
data = line.split()
if ( abs(float(data[0]) - lreq) <= 0.1
and abs(float(data[1]) - breq) <= 0.1):
T= data[2]
return T
print temp_sky(60, 60)
print temp_sky(10, -10)
我收到以下错误
7.37052488
Traceback (most recent call last):
File "tsky.py", line 25, in
print temp_sky(10, -10)
File "tsky.py", line 22, in temp_sky
return T
UnboundLocalError: local variable 'T' referenced before assignment
第一个print语句正常工作,但第二个不起作用.我尝试将T设为全局变量,但这使得两个答案都相同!请帮忙!
解决方法:
if语句始终为false,只有在满足条件时才会初始化T,因此代码不会到达T得到值的位置(由此得到定义/绑定).您应该在始终执行的位置引入变量.
尝试:
def temp_sky(lreq, breq):
T = # None is often a good pick
for line in tfile:
data = line.split()
if ( abs(float(data[0]) - lreq) <= 0.1 and abs(float(data[1]) - breq) <= 0.1):
T= data[2]
return T