Coding for KidsCoding for Kids
창의적인 레벨도전 과제교사 가이드
기능 투표
고급 파이썬 개발 과정
챕터
>
레벨

고급 함수
가변 인수 함수

목표

창고 안에 있는 모든 소비재를 챙겨 저장 용기에 포장하세요. 이를 위해 가변 인수 함수를 사용합니다.

창고 안에는 판매를 위해 배송되어야 하는 여러 식품이 있습니다. 이를 효율적으로 처리하기 위해, 가변 인수를 사용하는 커스텀 함수를 만들 수 있습니다. 이 함수들은 고정된 인수 개수가 없으며, 함수의 동작을 수행하기 위해 필요한 만큼의 인수를 전달할 수 있습니다.

가변 인수를 함수에 추가하는 방법은 달성하려는 목표에 따라 두 가지(2) 방식이 있습니다. 첫 번째 방법은 인수 리스트를 만드는 것으로, 여러 인수 이름을 나열하는 대신 단일 인수 앞에 별표(*)를 붙입니다. 이렇게 하면 자동으로 리스트가 생성됩니다.

def custom_function(message,*arguments): player.speak(message) return(arguments) value = custom_function("lalala","one","two","three") # The message "lalala" is printed on screen # Value now returns the list ("one","two","three")

두 번째 방법은 리스트 대신 딕셔너리 안에 인수를 넣는 것으로, 이전 방법과 동일하게 진행하지만 별표 하나 대신 두 개(**)를 사용합니다. 이렇게 하면 자동으로 리스트 대신 딕셔너리가 생성됩니다.

def custom_function(message,**arguments): player.speak(message) return(arguments) value = custom_function("lalala", one = 1, two = 2, three = 3) # The message "lalala" is printed on screen # Value now returns the dictionary: # {'one': 1, 'three': 3, 'two': 2}

모든 항목을 배송을 위해 포장하려면, 단일 항목을 포장하는 함수와 여러 항목을 함께 포장하는 두 가지의 커스텀 함수를 만드세요. 가변 인수를 사용해 여러 항목을 함께 포장하여 너무 많은 함수를 만들 필요가 없도록 합니다.

def pack_singles(name,*items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items) def pack_multi(name,**items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items)

필드에는 네(4) 가지 다른 유형의 항목이 있습니다: "jars", "eggs", "berries" 그리고 "fruit". 창고 안의 모든 항목을 수집하고 배송 통로의 X 표시를 향해 걸어가세요. 어두운 X 표시 쪽으로 걸어가서 pack_singles 함수를 사용해 "jars"와 "eggs"를 포장하세요.

"jars"의 경우, 네(4) 종류를 수집하며 인수로 입력됩니다. 이들은 "white", "purple", "red" 그리고 "brown" 입니다. 이 항목들은 green carpet 옆의 용기에 보관되어야 합니다. 코드는 다음과 같이 작성됩니다: pack_singles("jars", "white", "purple", "red", "brown")

"eggs"의 경우, 세(3) 종류를 수집하며 인수로 입력됩니다. 이들은 "white", "green", 그리고 "blue" 입니다. 이 항목들은 orange carpet 옆의 용기에 보관되어야 합니다. 이전 설정과 동일한 형식을 사용합니다.

그 후, 밝은 X 표시 쪽으로 걸어가서 pack_multi 함수를 사용해 "berries"와 "fruit"를 포장하세요. "berries"의 경우, 세(3) 종류를 수집하며 인수로 입력됩니다. 이들은 "red", "blue", 그리고 "purple" 입니다. 각 종류의 수량을 같이 입력해야 하며, 예시는 다음과 같습니다: pack_multi("berries", red = 3 , blue = 2 , purple = 4 )

"fruit"의 경우, 네(4) 종류를 수집하며 인수로 입력됩니다. 이들은 "apple", "pear", "orange", 그리고 "peach" 입니다. 이전 입력과 동일한 형식을 사용하며, 모든 항목이 수집되어 저장되어야 레벨을 완료할 수 있습니다.

코드북