我是python的新手,我正在为一个tic tac toe游戏做一个程序。为了能够在以后操作电路板,我已经把它变成了一个数组。
a=[["-","-","-"],["-","-","-"],["-","-","-"]]
def ttt(a):
for x in range (0,3):
print (a[x])
z=ttt(a)
print(z)
然而,当它打印时,会打印出来:
['-', '-', '-']
['-', '-', '-']
['-', '-', '-']
如何删除括号,引号和逗号以便打印:
- - -
- - -
- - -
谢谢!
答案 0 :(得分:1)
您可能想要进行这些小改动。如果我猜错了你的经验,我很抱歉:
您需要正确缩进代码。 Python使用indention而不是其他语言的大括号来确定函数的结尾和for循环。
决定打印位置。如果调用ttt
打算打印游戏板,那么它不应该返回任何值。如果调用ttt
将返回要打印的多行字符串,则不应自行进行任何打印。也就是说,确定ttt
是否意味着print_ttt_board(board)
或
format_ttt_board(board)
。现在,您正在函数中打印返回值,而不是返回值。 z=ttt(a)
始终将z设置为None
,因为没有返回值,print(z)
无效。
使用单个值。现在,您循环遍历顶级数组(每行一个数组)并打印它们。也就是说,第一行是数组["-", "-", "-"]
。您希望循环找到第一行的数组,然后循环或连接第二行。你现在
打印一个数组,Python为您提供了方便的可调试输出,因此您可以看到它是一个数组。
使用Python的join()
方法。它就像“每个元素之间的字符串”.join(the_array)。您print(a[x])
意味着打印a[x]
中以空格分隔的每个项目,而不是print(" ".join(a[x])
其中a[x]
是三个字符串的结果。
你需要从某个地方开始,不要放弃。稍后尝试此代码时会有其他建议:将def
置于顶部,命名变量和函数以使含义明确,使用for循环遍历行而不是索引到行,等等上。这些都旨在使您的代码运行并使您的意图明确
读你的代码的人。
答案 1 :(得分:0)
您可以将您的子列表与空格连接起来,然后打印出来:
a=[["-","-","-"],["-","-","-"],["-","-","-"]]
def ttt(a):
for x in range (0,3):
print(" ".join(a[x]))
z=ttt(a)
- - -
- - -
- - -
答案 2 :(得分:0)
from __future__ import print_function
def print_board(a):
for row in board:
for char in row:
print(' {}'.format(char), end='')
print('')
board = [["-","-","-"],["-","-","-"],["-","-","-"]]
print_board(board)