2015-09-06 60 views
-4

这段代码应该打印一个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) 

第二块与第一块有什么关系?另外,当我不加入争论时,它给了我一个错误。

我试着用其他东西切换参数,但没有奏效。

+2

你能确切地解释你的问题是什么?您定义电路板并打印它。什么部分你不明白(除了它不会运行,因为'print row'没有缩进)? – Matthias

+0

我想我会开始理解它。但无论如何,这2个代码块。第二个问题与第一个问题有什么关系,为什么这个问题必须是董事会 –

+0

在第一个部分中,您定义了'board',在第二个部分中打印它。当然,你需要参数'board',因为这就是你想要在'print_board'函数中使用的函数(在这里被称为'i')。 – Matthias

回答

0

我们首先将板定义为[]。

然后,我们添加一个元素[O]*5(这只给出五个O),五次。

所以阵列现在是[OOOOO,OOOOO,OOOOO,OOOOO,OOOOO]

然后,第二个块定义了一个通用函数print_board(i),它在一个新行中打印某个数组的每个元素。

例如,如果board2[WW,WW],然后print_board(board2)将打印

WW 
WW 
0

我假设你正在使用Python 2.x的你的棋盘是一个在开始时为空的列表类型。在for循环范围0到5(实际上它的0到4包括0)。 [“0”] * 5会使字符串重复五次以创建“0”列表。如果您尝试使用“测试!”* 5,则会导致测试!测试!测试!测试!测试!在交互式窗口中输出。 ['0','0','0','0','0'],['0','0','0','0','0' ],['0','0','0','0','0'],['0','0','0','0','0'],['0' ,'0','0','0','0']]将被分配给列表列表(嵌套列表)。

在第二个块中,for循环取出棋盘的每一行,即列表中的每个嵌套列表并打印它们。现在应该在第二个块中的print语句在for循环中缩进吗?你把他们放在同一个地方。如果您没有将任何参数传递给第二个块,则解释器将通知该异常,因为它期望迭代参数。所以任何迭代类型都可以像字典,集合等工作。所有与你的蟒蛇冒险最好的。

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 
相关问题