这段代码应该打印一个5x5的o,每行5行排成一行。
board = []
for x in range(0,5):
# runs code 5 times.(range of 0,5 = 5)
board.append(["O"] * 5)
def print_board(i):
for row in i:
print row
print print_board(board)
第二个块与第一个块有什么关系?另外,当我不作为论据时,它给了我一个错误。
我尝试用其他东西切换参数,但它没有用。
答案 0 :(得分:0)
我们首先将棋盘定义为[]。
然后我们添加一个元素[O]*5
(这只给出五个O),五次。
所以数组现在是[OOOOO,OOOOO,OOOOO,OOOOO,OOOOO]
。
然后第二个块定义了一个通用函数print_board(i)
,它在一个新行中打印某个数组的每个元素。
例如,如果board2
为[WW,WW]
,那么print_board(board2)
将打印
WW
WW
答案 1 :(得分:0)
我假设你使用的是python 2.X.您的电路板是一个列表类型,在开头是空的。 for for循环范围为0到5(实际上是0到4,包括0)。 [" 0"] * 5导致字符串使用" 0"创建一个列表。重复了五次。如果您尝试使用"测试!" * 5,它将导致测试!测试!测试!测试!测试!在交互式窗口中输出。现在在这个循环结束时[[' 0',' 0',' 0',' 0',' 0& #39;],[' 0',' 0',' 0',' 0',' 0' ],[' 0',' 0',' 0',' 0',' 0'],[ ' 0',' 0',' 0',' 0',' 0'],[&#39 ; 0',' 0',' 0',' 0',' 0']]将分配给电路板是一个列表列表(列表的嵌套)。
在第二个块中,for循环获取板的每一行,即列表中的每个嵌套列表并打印相同的行。现在第二个块中的print语句是否应该在for循环中缩进?你把它们保持在同一个凹痕中。如果您没有将任何参数传递给第二个块,则解释器将通知异常,因为它需要可迭代参数。因此,任何可迭代类型都可以像字典,集等一样工作。最好用你的python冒险。
答案 2 :(得分:0)
也许一点结构会帮助你更好地理解它;)
# function definition
def print_board(i): # definition of function "board"
for row in i: # this function can be called from anywhere
print row # in your program and requires an argument
# to know what to do
# main program
board = [] # create variable board
for x in range(0,5): # insert values ...
# runs code 5 times.(range of 0,5 = 5)
board.append(["O"] * 5)
print_board(board) # tell function to print this variable