我有这个代码来制作游戏板并更改其中一个元素
def firstBoard():
rows = int(input("Please enter the number of rows: "))
col = int(input("Please enter the number of columns: "))
myList = [[0]*col]*rows
return myList
def getInput(myList):
rows = int(input("Enter the row or 'q': "))
col = int(input("enter the column: "))
myList[rows-1][col-1] = "X"
return myList
def printBoard(myList):
for n in myList:
for s in n:
print(s, end= " ")
print()
def main():
myList = firstBoard()
myList = getInput(myList)
print(printBoard(myList))
main()
我想要游戏板的输出:
Please enter the number of rows: 5
Please enter the number of columns: 5
Enter the row or 'q': 1
Enter the column: 1
X 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
但我得到了:
X 0 0 0 0
X 0 0 0 0
X 0 0 0 0
X 0 0 0 0
X 0 0 0 0
None
任何想法如何解决这个问题并摆脱底部的"无#34;。
答案 0 :(得分:0)
发表评论作为答案......
在第四行中改为:
myList = [[0]*col for i in range(rows)]
您看到的行为是由于您在每行上创建相同的列表。
由于您已经有printBoard(...)
打印电路板的代码,请删除对print()
的最终调用,例如:main()
中的最后一行应该只是:
printBoard(myList)