函数不会返回新值Python 2.7

时间:2016-01-13 18:23:25

标签: python-2.7 return return-value function

我正在制作简单的Tic Tac Toe游戏(并不像我想象的那么容易)。 我想创建一个函数,询问玩家想要玩哪个牌子(x或o)。我有一个返回值的问题。它只会赢回任何东西......就像什么都没有改变一样。

Meteor.settings.public.s3path

尝试使用像为player_choice和computer_choice分配值的样本,并打印出初始字符串。我做错了什么?

2 个答案:

答案 0 :(得分:0)

你需要在你的代码中调用player_sign(player_choice,computer_choice)

答案 1 :(得分:0)

您希望在函数内变异不可变类型(字符串)。这是不可能的。有关详细说明,请参阅问题:How do I pass a variable by reference?

您应该做的只是将函数的返回值赋给调用函数的范围中的名称。

def player_sign():
    choice = raw_input("Do you want to be X or O?:  ").lower()
    while choice != 'x' and choice != 'o':
        print "Error!\n Wrong input!"
        choice = raw_input("Do you want to be X or Y?:  ").lower()
    if choice == 'x':
        print "X is yours!"
        player = 'X'
        computer = 'O'
        return player, computer
    elif choice == 'o':
        print "You've chosen O!"
        player = 'O'
        computer = 'X'
        return player, computer
    else:
        print "Error!\n Wrong input!"
        return None, None

player_choice, computer_choice = player_sign()