Python循环函数参数
我是新来的,刚从codeacademy开始学习Python。在下面的函数中,我无法理解为什么print_board函数使用参数board_In,但board_In在任何地方都没有引用Python循环函数参数,python,function,arguments,Python,Function,Arguments,我是新来的,刚从codeacademy开始学习Python。在下面的函数中,我无法理解为什么print_board函数使用参数board_In,但board_In在任何地方都没有引用 board = [] for i in range(5): board.append(["O"] * 5) def print_board(board_in): for row in board: print row print_board(board) 参数中的板_完全未使用。您发现了错误
board = []
for i in range(5):
board.append(["O"] * 5)
def print_board(board_in):
for row in board:
print row
print_board(board)
参数中的
板_完全未使用。您发现了错误的代码,这可能意味着要使用该参数,但有人出错并忘记使用它
函数体使用全局名称board
(与作为函数调用参数传入的名称相同)。这就是为什么代码碰巧可以工作,但当您传入完全不同的内容时,它将无法按预期工作:
>>> print_board(None)
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
>>> print_board("This argument is ignored, so it doesn't matter what you pass in")
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
>>> board = [['A new value', 'for the board global'], ['means the output', 'changes']]
>>> print_board(2 + 2)
['A new value', 'for the board global']
['means the output', 'changes']
当您传入完全不同的内容时,它将继续打印board
列表,例如print\u board(None)
。当您在调用函数(并传入其他内容)之前使用delboard
时,它将失败并出现namererror
:
现在
中的board\u实际正在使用。中的board\u参数完全未使用。您发现了错误的代码,这可能意味着要使用该参数,但有人出错并忘记使用它
函数体使用全局名称board
(与作为函数调用参数传入的名称相同)。这就是为什么代码碰巧可以工作,但当您传入完全不同的内容时,它将无法按预期工作:
>>> print_board(None)
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
>>> print_board("This argument is ignored, so it doesn't matter what you pass in")
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
['O', 'O', 'O', 'O', 'O']
>>> board = [['A new value', 'for the board global'], ['means the output', 'changes']]
>>> print_board(2 + 2)
['A new value', 'for the board global']
['means the output', 'changes']
当您传入完全不同的内容时,它将继续打印board
列表,例如print\u board(None)
。当您在调用函数(并传入其他内容)之前使用delboard
时,它将失败并出现namererror
:
现在实际上正在使用中的board\u
。这是直接来自CodeAcademy的代码?是的,这有点让人困惑。这可能只是一个打字错误。代码可能应该是这样的:
@ChristianDean的board_中的行的,对于这样一个拼写错误的存在来说,有点糟糕,尤其是Python是一种巨大的起始语言。我不知道是否可以报告,它确实没有被使用。这是错误的代码。相反,它使用了全局名称board
。是的,作为初学者@roganjosh,这的确很糟糕。如果这是直接来自Codecademy,我可能会看看是否可以让他们知道。这是直接来自CodeAcademy的代码?是的,这有点让人困惑。这可能只是一个打字错误。代码可能应该是这样的:
@ChristianDean的board_中的行的,对于这样一个拼写错误的存在来说,有点糟糕,尤其是Python是一种巨大的起始语言。我不知道是否可以报告,它确实没有被使用。这是错误的代码。相反,它使用了全局名称board
。是的,作为初学者@roganjosh,这的确很糟糕。如果这是直接从Codecademy发来的,我可能会看看是否可以让他们知道。非常感谢您的快速回复。我认为这也是多余的,但我仍然是个傻瓜,所以我不确定:)太好了,谢谢你,反应很快。我认为这也是多余的,但我仍然是个笨蛋,所以我不确定:)
def print_board(board_in):
for row in board_in:
print row