【发布时间】:2020-07-04 01:30:17
【问题描述】:
我正在开发一个井字游戏,它的功能是将列表中的连字符替换为 X 和 O 以形成一个网格。我也是python的初学者,所以这段代码会很笨拙。问题是我希望游戏可以重新玩,但我找不到将列表重置为开始时的连字符的方法。这是一个简化的代码,可以更好地说明问题:
list = ["-","-","-", "X","O"]
def replace():
list[0] = list[3]
def main():
replace()
play_again = input ("play again?")
if play_again == "yes":
main()
else:
exit()
main()
这使得列表从["-","-","-", "X","O"] 变为["X","-","-", "X","O"],从而使游戏正常运行。
当玩家再次玩游戏时,我希望能够以某种方式将list 变回["-","-","-", "X","O"]。不幸的是,该列表似乎停留在 ["X","-","-", "X","O"] 。我试过了:
-
在
replace()上方添加list = ["-","-","-", "X","O"] -
在
replace()上方添加list[0] = "-"
这些选项都不起作用。
是否可以将list 的值重置为我一开始的值?如果是这样,我应该如何处理?
【问题讨论】:
-
不要使用
list作为变量名。list是一个重要的内置函数,当你这样做时会被阻止。 -
@user120242 这似乎不起作用,如果我尝试在 main()
-
@Tom Karzes 我知道,我在实际代码中的变量是 gridlist。但是,即使我将变量名称更改为 gridlist 之类的名称,潜在的解决方案也不起作用。
-
对,我的评论是一般性建议,与您的问题无关。