如何在不重置函数的情况下在函数中定义变量

时间:2018-12-05 14:48:26

标签: python function

我目前正在做音乐测验。我遇到了一个问题,不知道如何解决。我正在使用一个叫做错误的变量。它应该是一个int,如果我在代码的开头定义它,则它不会转移到函数中。如果在函数中定义它,它将重置。

2 个答案:

答案 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