Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 위치 인수는 키워드 인수를 따릅니다. 솔루션

Python에는 위치 인수와 키워드 인수의 두 가지 유형의 인수가 있습니다. 이러한 인수는 특정 순서로 나타나야 합니다. 그렇지 않으면 Python 인터프리터가 오류를 반환합니다.

이 가이드에서는 "위치 인수가 키워드 인수를 따릅니다." 오류와 발생 이유에 대해 설명합니다. 이 오류가 있는 예제 코드 조각을 살펴보고 문제를 해결하는 방법을 살펴보겠습니다.

시작하겠습니다!

문제:위치 인수가 키워드 인수를 따릅니다.

전체 오류를 살펴보겠습니다.

SyntaxError:위치 인수가 키워드 인수를 따릅니다.

영어와 마찬가지로 프로그래밍 언어에도 고유한 규칙이 있습니다. 이러한 규칙을 구문이라고 합니다. 우리의 오류는 구문 오류입니다. 이는 Python 코드를 작성하는 방법을 제어하는 ​​규칙 중 하나를 따르지 않았다는 것을 의미합니다.

오류의 다음 부분은 이 오류의 원인을 알려줍니다. 이 경우 코드에는 키워드 인수 뒤에 나타나는 위치 인수가 있어야 합니다.

위치 인수는 해당 위치에 나타나는 인수입니다.

def add_numbers(a, b):return a + b이 함수를 호출합시다:add_numbers(2, 3)

"a"와 "b"는 함수 내에서 변수가 됩니다. 이 코드는 두 개의 위치 인수를 지정했기 때문에 작동합니다. "a"는 2이고 "b"는 3입니다. 다음 인수를 키워드 인수로 지정할 수도 있습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

add_numbers(a=2, b=2)

그러나 먼저 위치 인수를 지정한 다음 키워드 구문으로 전환할 수 없습니다.

파이썬에는 함수의 여러 인수를 처리하는 *args라는 특수 함수가 있기 때문입니다. 다음 코드를 고려하십시오.

def show_users(a, b, *args):print(a, b, *args)

이 코드는 *args를 사용합니다. 이 키워드는 가변 개수의 인수를 나타냅니다. show_users()에 많은 인수를 전달할 수 있습니다. 원하는 대로 작동:

show_users("알렉스", "피터", "바이올렛", "줄리")

코드 반환:Alex Peter Violet Julie

처음 두 인수 "a"와 "b"는 각각 "Alex"와 "Peter" 값을 갖습니다.

위치 구문을 사용하는 경우 인수가 전달된 순서대로 할당되기 때문입니다. *args는 알 수 없는 양의 추가 인수를 나타내므로 마지막 인수는 명시된 순서대로 나타납니다.

예시 시나리오

이 오류가 발생하는 코드 스니펫을 살펴보겠습니다.

def print_menu(salads, pizza):print("Salad Menu") for s in 샐러드:print(s) print("") print("Pizza Menu") for p in pizza:print(p) 

이 함수는 샐러드와 피자의 두 가지 인수를 허용합니다. 우리 함수는 샐러드 메뉴의 각 샐러드와 피자 메뉴의 각 피자를 콘솔에 출력합니다.

함수를 호출해 보겠습니다.

샐러드 =["참치 샐러드", "상추와 망고 샐러드", "그리스 샐러드"]피자 =["베지 슈프림", "햄과 파인애플", "BBQ 치킨"]print_menu(피자=피자, 샐러드) 

코드 반환:

파일 "main.py", 13행 print_menu(pizzas=pizzas, 샐러드) ^SyntaxError:위치 인수가 키워드 인수를 따릅니다.

예상대로 코드에 오류가 있습니다. 수정합시다.

해결책

이 문제를 해결하려면 모든 위치 인수가 키워드 인수보다 먼저 와야 합니다. 이 규칙을 반영하기 위해 함수를 호출하는 방법을 변경해 보겠습니다.

print_menu(샐러드, 피자)

샐러드와 피자라는 두 가지 위치 인수를 지정했습니다. 또는 "샐러드" 다음에 키워드 인수로 "피자"를 지정할 수 있습니다.

print_menu(샐러드, 피자 =피자)

이 예에서는 *args 메소드를 사용하지 않기 때문에 키워드 인수를 추가할 필요가 없습니다. 즉, 키워드 인수를 추가하면 함수에 전달되는 값의 수에 따라 코드를 더 읽기 쉽게 만들 수 있습니다.

이 수정된 함수 호출로 코드를 실행해 보겠습니다.

샐러드 메뉴참치 샐러드상추와 망고 샐러드그릭 샐러드피자 메뉴 야채 수프림 햄과 파인애플BBQ 치킨

코드는 두 개의 Python 목록을 성공적으로 출력합니다.

결론

위치 인수는 Python에서 키워드 인수 앞에 나타나야 합니다. 이는 Python이 위치 인수가 나타나는 순서대로 해석하기 때문입니다. 그런 다음 지정된 키워드 인수를 해석합니다.

이제 전문 Python 개발자처럼 "위치 인수가 키워드 인수를 따릅니다." 오류를 해결할 준비가 되었습니다!