Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python循环函数参数_Python_Function_Arguments - Fatal编程技术网

Python循环函数参数

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) 参数中的板_完全未使用。您发现了错误

我是新来的,刚从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
(与作为函数调用参数传入的名称相同)。这就是为什么代码碰巧可以工作,但当您传入完全不同的内容时,它将无法按预期工作:

>>> 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