Python 功能材料。请解释一下它是如何工作的

Python 功能材料。请解释一下它是如何工作的,python,function,Python,Function,该代码应该打印一个5x5的o板,将每行5个o排成一行 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) 第二个街区和第一个街区有什么关系?另外,当我没有把板作为论点,它给了我一个错误 我

该代码应该打印一个5x5的o板,将每行5个o排成一行

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)
第二个街区和第一个街区有什么关系?另外,当我没有把板作为论点,它给了我一个错误


我试着用其他东西来交换论点,但没有成功。

我们首先将board定义为[]

然后我们在元素[O]*5上加一个a,这只给它五个O,五次

所以数组现在是[OOOOO,OOOOO,OOOOO,OOOOO,OOOOO]

然后,第二个块定义了一个通用函数print_boardi,它在新行中打印特定数组的每个元素

例如,如果board2为[WW,WW],则print_board2将打印

WW
WW

我假设您使用的是Python2.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']将被分配给作为列表嵌套列表的板


在第二个块中,for循环获取电路板的每一行,即列表中的每个嵌套列表,并打印相同的内容。现在,第二个块中的print语句应该缩进for循环中吗?你把它们放在同一个缩进里了。如果没有向第二个块传递任何参数,解释器将通知异常,因为它需要iterable参数。因此,任何iterable类型都可以像字典、集合等一样工作。在您的python冒险中,这一切都是最好的。

也许一点结构会帮助您更好地理解它

# 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

你能解释一下你到底有什么问题吗?您可以定义电路板并打印它。除了因为打印行没有缩进而无法运行之外,您还不了解它的哪一部分?我想我已经开始了解它了。但无论如何,有两块代码。第二个和第一个有什么关系,为什么参数必须是board在第一部分你定义board,在第二部分你打印它。当然,您需要参数板,因为这是您希望在print_board函数(即i.basicpython)中使用的。