簡體   English   中英

語法錯誤:位置參數跟隨關鍵字參數:

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM