函数不会 return 新值 Python 2.7
Function won't return new value Python 2.7
我正在制作简单的 Tic Tac Toe 游戏(并不像我想象的那么简单)。
我想创建一个函数,询问玩家想要玩哪个标志(x 或 o)。我对 returning 值有疑问。它不会 return 任何东西...就像什么都没有改变一样。
player_choice = ''
computer_choice = ''
def player_sign(player, computer):
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 0
player_sign(player_choice, computer_choice)
尝试使用示例为 player_choice 和 computer_choice 赋值,并打印初始字符串。我做错了什么?
您需要在最后的代码中调用 player_sign(player_choice,computer_choice)
您想在函数内改变不可变类型(字符串)。这是不可能的。详细解释请参考问题:How do I pass a variable by reference?.
您应该做的只是将函数的 return 值分配给函数调用范围内的名称。
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()
我正在制作简单的 Tic Tac Toe 游戏(并不像我想象的那么简单)。 我想创建一个函数,询问玩家想要玩哪个标志(x 或 o)。我对 returning 值有疑问。它不会 return 任何东西...就像什么都没有改变一样。
player_choice = ''
computer_choice = ''
def player_sign(player, computer):
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 0
player_sign(player_choice, computer_choice)
尝试使用示例为 player_choice 和 computer_choice 赋值,并打印初始字符串。我做错了什么?
您需要在最后的代码中调用 player_sign(player_choice,computer_choice)
您想在函数内改变不可变类型(字符串)。这是不可能的。详细解释请参考问题:How do I pass a variable by reference?.
您应该做的只是将函数的 return 值分配给函数调用范围内的名称。
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()