Python 修改在函数内部的函数外部创建的数组

Python 修改在函数内部的函数外部创建的数组,python,Python,我编写了一个Tic-Tac-Toe游戏,在代码的开头,我创建了一个存储X和O的列表。所以它不在任何函数中。该列表的代码如下:board=[“”表示范围(10)内的x]我写这篇文章也是为了能够在游戏结束后再次玩: def playagain(): while True: again = input() if again.lower() == "n": print("Goodbye!") quit()

我编写了一个Tic-Tac-Toe游戏,在代码的开头,我创建了一个存储X和O的列表。所以它不在任何函数中。该列表的代码如下:
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]=“”
打破
...

Add
global board
playreach
的开头,基本提示:了解有关函数的更多信息。使用参数和返回值。