我目前正在做音乐测验。我遇到了一个问题,不知道如何解决。我正在使用一个叫做错误的变量。它应该是一个int,如果我在代码的开头定义它,则它不会转移到函数中。如果在函数中定义它,它将重置。
答案 0 :(得分:0)
您可以在不先创建变量的情况下定义函数,否则Python可以处理任何一种情况。
def music(answers):
# Where answers is [(user input, correct answer) ...]
wrong = []
for i in answers:
if i[0] == i[1]:
pass
else:
wrong.append(i)
return wrong
wrong = music(answers)
或者,如果您想从先前的答案中选择错误的地方继续往上走,
wrong = [(previous values, previous answers) ...]
def music(answers, wrong = []):
# Where answers is [(user input, correct answer) ...]
wrong = []
for i in answers:
if i[0] == i[1]:
pass
else:
wrong.append(i)
return wrong
wrong = music(answers, wrong=wrong)
答案 1 :(得分:0)
容易。使其全球化。当您像这样一开始就定义错误时
wrong = 10
只需在函数内部调用全局方法,它就应该使用初始化变量
def your_function():
global wrong
wrong_temp = wrong
#use wrong_temp however
我还将看一下此链接。看起来这可能可以解决您所提出的问题,但也有助于了解全局变量的工作方式。 Using global variables in a function