import time
def taym():
time.sleep(5)
def getprice():
myfile = open('C:\\Users\\DELL\\Desktop\\Python\\html1.html')
txt = myfile.read()
t = txt.find("$")
it = float(txt[t-4:t])
it=8
while it != 1000:
getprice()
if it <= 4.74:
print("Price is Ok!")
taym()
else:
print("The price of the coffee beans is "+txt[t-4:t+1])
taym()
当我在python3中运行此代码时,收到如下错误消息:
"print("The price of the coffee beans is "+txt[t-4:t+1])
NameError: name 'txt' is not defined."
我知道我可以在循环内使用getprice()
中的原始代码,但是我需要知道为什么当我有一个调用的函数时,它为什么不起作用。
答案 0 :(得分:6)
变量txt在getprice
函数中定义,您不能在该函数之外使用它。
顺便说一下,您在it
上遇到了同样的问题
答案 1 :(得分:3)
我同意@Gelineau,您的代码应如下所示:
import time
def taym():
time.sleep(5)
def getprice():
myfile=open('C:\\Users\\DELL\\Desktop\\Python\\html1.html')
txt=myfile.read()
t=txt.find("$")
it=float(txt[t-4:t])
return it, txt, t
it = 8
while it != 1000:
it, txt, t = getprice()
if it<=4.74:
print("Price is Ok!")
taym()
else:
print("The price of the coffee beans is "+txt[t-4:t+1])
taym()
答案 2 :(得分:0)
变量“ txt”在您调用它的位置之外。它在函数中定义,但在while(超出范围)中使用。