[英]Syntax Error: positional argument follows keyword argument:
所以这是我的代码:
def is_valid_move(board, column):
'''Returns True if and only if there is an open cell in column'''
for i in board[col]:
if i == 1 or i == 2:
return False
else:
return True
然后我尝试使用以下方法测试我的功能:
print(is_valid_move(board = [[2, 2, 0, 2, 2, 2, 2], [1, 2, 2, 2, 2, 2, 2], [1, 1, 2, 2, 1, 2, 1], [1, 1, 2, 2, 1, 2, 1], [1, 1, 2, 2, 1, 2, 1], [1, 1, 2, 2, 1, 2, 1]], 2))
我从来没有遇到过这个错误,所以我对如何真正解决这个问题甚至这意味着什么感到困惑。
参数有两种类型:位置参数和关键字。
如果我们具有以下功能:
def f(a, b):
return a + b
然后我们可以使用位置参数来调用它:
f(4, 4)
# 8
或关键字参数:
f(a=4, b=4)
# 8
但是您不能在命令关键字->位置关键字中同时使用这两个关键字:
f(a=4, 4)
# SyntaxError: positional argument follows keyword argument
f(4, b=4)
# 8
这是有原因的。 再次,假设我们有一个类似的功能:
def f(a, b, *args):
return a + b + sum(args)
当调用此函数时,我们如何知道什么参数是a
,什么参数是b
以及什么是args
?
在函数调用中,关键字参数应遵循非关键字参数。 在您的情况下,应将电路板分配给一个变量,然后将此变量传递给功能。
board = [[2, 2, 0, 2, 2, 2, 2], [1, 2, 2, 2, 2, 2, 2], [1, 1, 2, 2, 1, 2, 1], [1, 1, 2, 2, 1, 2, 1], [1, 1, 2, 2, 1, 2, 1], [1, 1, 2, 2, 1, 2, 1]]
print(is_valid_move(board, 2))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.