纸岩剪 - 全球变量?

时间:2015-07-14 13:19:44

标签: python global

为什么这不起作用?我需要分配全局变量吗?它说player1未定义!

options=["p", "s", "r"]

def valid1():
    validationa = True
    while validationa==True:
        player1=input("player 1.. Take your go")
        if player1 not in options:
            print ("invalid")
        else:
            validationa==False
            return player1

def valid2():
    validationb = True
    while validationb==True:
        player2=input("player 2.. Take your go")
        if player2 not in options:
            print ("invalid")
        else:
            validationb==False
            return player2
valid1()
valid2()

if player1=="p" and player2 =="p":
    print("Draw")
else:
    print("works but unfinished")

2 个答案:

答案 0 :(得分:4)

您的函数返回值,但您从不将它们分配给任何内容。

player1 = valid1()
player2 = valid2()

事实上,这些函数几乎完全相同,如果你使文本动态或更通用,你可以只有一个函数,只需调用它两次

player1 = valid()
player2 = valid()

答案 1 :(得分:1)

你返回了player1和player2,但你没有指定它。

for (var i = 0; i < triggerButtons.length; i++) {
    triggerButtons[i].addEventListener( 'click', toggleOverlay );
}

你的功能几乎相同......

options=["p", "s", "r"]

def valid1():
    validationa = True
    while validationa==True:
        player1=input("player 1.. Take your go")
        if player1 not in options:
            print ("invalid")
        else:
            validationa==False
            return player1

def valid2():
    validationb = True
    while validationb==True:
        player2=input("player 2.. Take your go")
        if player2 not in options:
            print ("invalid")
        else:
            validationb==False
            return player2
player1=valid1()
player2=valid2()

if player1=="p" and player2 =="p":
    print("Draw")
else:
    print("works but unfinished")