Python 修改在函数内部的函数外部创建的数组
我编写了一个Tic-Tac-Toe游戏,在代码的开头,我创建了一个存储X和O的列表。所以它不在任何函数中。该列表的代码如下:Python 修改在函数内部的函数外部创建的数组,python,Python,我编写了一个Tic-Tac-Toe游戏,在代码的开头,我创建了一个存储X和O的列表。所以它不在任何函数中。该列表的代码如下:board=[“”表示范围(10)内的x]我写这篇文章也是为了能够在游戏结束后再次玩: def playagain(): while True: again = input() if again.lower() == "n": print("Goodbye!") quit()
board=[“”表示范围(10)内的x]
我写这篇文章也是为了能够在游戏结束后再次玩:
def playagain():
while True:
again = input()
if again.lower() == "n":
print("Goodbye!")
quit()
elif again.lower() == "y":
board = [" " for x in range(10)]
break
else:
print("Please enter Y or N")
while True:
main()
print("Again? \'Y\' or \'N\'")
playagain()
但如果我在询问我是否想再次玩游戏时输入“y”,它只会打印出最后的结果,并询问我是否想再次玩,即使它应该重新创建棋盘列表,并在我输入“y”时重新启动游戏。这是它给我的输出:
Computer placed an 'O' in position 5 :
| |
X | X | O
| |
-----------
| |
X | O |
| |
-----------
| |
O | |
| |
Sorry, O's won this time
Again? 'Y' or 'N'
y
Welcome to Tic Tac Toe!
| |
X | X | O
| |
-----------
| |
X | O |
| |
-----------
| |
O | |
| |
Sorry, O's won this time
Again? 'Y' or 'N'
我在这里做错了什么?您必须按照其他评论员的建议,通过在
playreach
函数的开头写入global board
来声明board
一个全局变量,或者将其作为参数传递到函数中并进行适当修改
请注意,在后一种情况下,将新列表分配给此变量并不会削减它-您需要实际修改现有列表:
。。。
elif再次。lower()=“y”:
对于范围内的i(len(board)):
板[i]=“”
打破
...
Addglobal board
在playreach
的开头,基本提示:了解有关函数的更多信息。使用参数和返回值。