Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 全局变量不工作?_Python 3.x - Fatal编程技术网

Python 3.x 全局变量不工作?

Python 3.x 全局变量不工作?,python-3.x,Python 3.x,我正在尝试制作一个基本的掷硬币器,我希望有一种方法在完成后重复它,所以我添加了answer变量,如果它==y,那么它将重复我的主函数。 但是在while中(答案==“y”):这意味着答案没有定义,即使我已经全球化了变量 import random def main(): myVar = random.randint(1,2) if myVar == "2": print("Heads") else: print("Tails")

我正在尝试制作一个基本的掷硬币器,我希望有一种方法在完成后重复它,所以我添加了answer变量,如果它==y,那么它将重复我的主函数。 但是在while中(答案==“y”):这意味着答案没有定义,即使我已经全球化了变量

import random


def main():
    myVar = random.randint(1,2)
    if myVar == "2":
        print("Heads")
    else:
        print("Tails")
    global answer
    answer = input("repeat?")

while(answer == "y"):
    main()


main()

while循环必须在调用main()函数之后。即使您在while循环之前定义了函数,但在调用它之前它不会运行

main()
while(answer == "y"):
    main()
此外,结果也将始终是“Tails”,因为您检查myVar是否==“2”,这是一个字符串。在这种情况下,myVar永远不是字符串。删除引号以检查整数值

if myVar == 2: