这很可能是我的错误,因为编码时缺乏技能,但是我遇到了以前从未有过的东西,那就是在使用函数并将它们引用其他函数时,变量可能会混乱并产生错误。我需要有人帮助分解正在发生的事情。请帮助并提前谢谢您
import os
def main():
if os.path.exists("Text.txt")==True:
with open("Text.txt", "r") as f:
li=[]
for lines in f:
li.append(eval(lines))
for i in range(0, len(li)):
if i == 0:
a = li[i]
elif i == 1:
b = li[i]
elif i == 2:
c = li[i]
elif i == 3:
d = li[i]
else:
pass
else:
open("Text.txt", "w").close
a=[1]
b=[2]
c=[3]
d=[4]
menu(a, b, c, d)
def menu(a, b, c, d):
print(a, b, c, d)
main()
当我运行代码时,出现错误提示:追溯(最近一次通话):main()中的文件“ main.py”,第30行,main()中文件“ main.py”,第26行,菜单(a,b,c,d)UnboundLocalError:分配前已引用局部变量'c'
变量c并非总是在您的代码中定义。
例如,使用类似的检查:
def main():
c=None
...
if ...
...
import os
def main():
a, b, c, d = None,None,None, None # Use None or any other data type you are using
if os.path.exists("Text.txt"):
with open("Text.txt", "r") as f:
li = []
for lines in f:
li.append(eval(lines))
for i in range(0, len(li)):
if i == 0:
a = li[i]
elif i == 1:
b = li[i]
elif i == 2:
c = li[i]
elif i == 3:
d = li[i]
else:
pass
else:
open("Text.txt", "w").close
a = [1]
b = [2]
c = [3]
d = [4]
menu(a, b, c, d)
def menu(a, b, c, d):
print(a, b, c, d)
main()
在之前定义a,b,c和d,并应解决此问题。