[英]function stuff. please explain how it works
这段代码应该打印一个 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
(这只是给了五个 O),五次。
所以数组现在是[OOOOO,OOOOO,OOOOO,OOOOO,OOOOO]
。
然后第二个块定义了一个通用函数print_board(i)
,它在新行中打印某个数组的每个元素。
例如,如果board2
是[WW,WW]
,则print_board(board2)
将打印
WW
WW
我假设您使用的是 python 2.X。 你的板是一个列表类型,一开始是空的。 在 for 循环中,范围为 0 到 5(实际上是它的 0 到 4,包括 0)。 ["0"]*5 导致创建字符串列表,其中 "0" 重复五次。 如果您尝试使用“Test!”*5,则会导致 Test!Test!Test!Test!Test! 在交互窗口中输出。 现在在这个循环的末尾 [['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 循环获取棋盘的每一行,即列表中的每个嵌套列表并打印相同的内容。 现在应该在 for 循环内缩进第二个块中的打印语句吗? 您已经将它们保持在相同的缩进中。 如果您不向第二个块传递任何参数,解释器将通知异常,因为它需要可迭代参数。 因此,任何可迭代类型都可以像字典、集合等一样工作。一切都与您的 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.