【问题标题】:function stuff. please explain how it works功能的东西。请解释它是如何工作的
【发布时间】:2015-09-06 14:01:12
【问题描述】:

这段代码应该打印一个 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 作为参数时,它会给我一个错误。

我尝试用其他东西切换论点,但没有奏效。

【问题讨论】:

  • 你能解释一下你的问题到底是什么吗?您定义板并打印它。你不明白它的哪一部分(除了它不会运行,因为print row 没有缩进)?
  • 我想我开始理解它了。但无论如何,有 2 块代码。第二个和第一个有什么关系,为什么论点必须是板
  • 在第一部分定义board,在第二部分打印它。当然,您需要 board 参数,因为这是您要在 print_board 函数中使用的参数(在那里称为 i)。
  • 基本 Python,阅读文档。

标签: python function


【解决方案1】:

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

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

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

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

例如,如果board2[WW,WW],那么print_board(board2) 将打印出来

WW
WW

【讨论】:

    【解决方案2】:

    我假设您使用的是 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 循环获取棋盘的每一行,即列表中的每个嵌套列表并打印相同的内容。现在第二个块中的 print 语句是否应该在 for 循环内缩进?您将它们保持在相同的缩进中。如果您不向第二个块传递任何参数,解释器将通知异常,因为它需要可迭代参数。因此,任何可迭代的类型都可以像字典、集合等一样工作。祝你的 python 项目一切顺利。

    【讨论】:

      【解决方案3】:

      也许一点结构会帮助你更好地理解它;)

      # 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-11
        • 1970-01-01
        • 2016-09-27
        • 2013-08-03
        • 1970-01-01
        • 2021-05-11
        • 1970-01-01
        • 2023-01-12
        相关资源
        最近更新 更多