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

고급 함수
다형성 함수

이번 장에서는 새로운 종류의 함수와 그 다양한 활용 방법, 그리고 파이썬 코딩 시 이들을 최대한 활용하는 방법에 대해 알아봅니다.

이번 레벨에서는 다형 함수를 시작합니다. 이는 여러 가지 데이터 타입과 함께 사용할 수 있는 함수들을 의미합니다. 같은 함수를 이용하여 여러 작업을 수행할 수 있는, 일종의 범용 함수와 같습니다.

Guide

목표

다형 함수를 사용하여 작물과 돼지 새끼의 상태를 확인하고 공급 선적을 확인하세요.

곧 판매를 위해 선적할 수확해야 할 작물들이 있을 것입니다. 돼지 새끼들에게도 먹이가 배달되어야 하므로, 주문해야 할 먹이의 양을 확인하는 것이 좋습니다. 이 작업들을 수행하기 위해 다형 함수를 사용할 수 있으며, 이 경우에는 len() 함수를 사용할 것입니다.

다형 함수는 여러 다른 데이터 타입과 함께 사용할 수 있는 함수입니다. 예를 들어, len() 함수는 객체의 길이를 계산하는 데 사용되는 함수로, 이 객체들은 리스트, 딕셔너리, 심지어 문자열과 같은 다양한 데이터 타입일 수 있습니다. 먼저 밭에 있는 낮은 X 표시에서 개수를 계산한 후, 창고에 있는 높은 X 표시로 이동하세요.

도로 옆 우리 안에 몇 마리의 돼지 새끼가 있습니다. 이들의 이름은 "Peggle", "Peter", "Piper", "Pedro"입니다. 이 이름들을 리스트에 넣어 계산할 수 있도록 하세요. 예를 들어: piglets = ["Peggle", "Peter", "Piper", "Pedro"]

다음과 같이 len() 함수를 사용하여 리스트의 길이를 저장할 변수 number를 생성하세요: number = len(piglets)

리스트와 변수를 설정한 후, 돼지 새끼 우리 앞에 있는 어두운 X 표시로 걸어가서 우리를 향한 다음 speak() 함수를 사용하여 돼지 새끼들을 세세요. 다음과 같이 number 변수를 사용하여 결과를 얻으세요: player.speak("There are d% Piglets" % (number) )

돼지 새끼를 확인한 후, 밭 옆의 밝은 X 표시로 걸어가서 작물을 향해 서서 이를 세세요. 세 가지(3)의 다른 종류의 작물이 있습니다: "Tomatoes", "Pumpkins", "Eggplant". 각 작물이 몇 개 자라고 있는지 세어 딕셔너리에 저장하세요, 다음과 같이:

crops = {} crops["Tomato"] = number of tomato crops crops["Pumpkin"] = number of Pumpkin crops crops["Eggplant"] = number of Eggplant crops

적절한 값으로 딕셔너리를 채운 후, 다음과 같이 speak() 함수와 len() 함수를 결합하여 사용 가능한 작물의 종류 수를 세세요: player.speak("There are d% types of crops" % ( len(crops) ) ).

돼지 새끼와 작물을 모두 셌다면, 보라색 매트 위에 있는 어두운 X 표시로 걸어가서 발송될 작물 주문을 확인하세요. 발송될 작물 주문이 포함된 문자열을 저장하는 order라는 상수 변수가 있습니다. 주문이 무엇인지와 주문의 수를 알아내야 합니다. 이를 위해 speak() 함수와 문자열을 풀어내는(unpacking) 방법, 그리고 len() 함수를 사용할 수 있습니다.

player.speak( [*order] ) player.speak("There are d% orders of crops going out" % ( len(order) ) )

문자열 변수를 대괄호 안에 넣고 *를 사용함으로써 문자열의 각 문자를 풀어내는 연산자를 활성화할 수 있습니다. 예를 들어, [*string]은 문자열의 각 문자를 분리하여 리스트에 넣습니다. 예시로, [*string]은 리스트 ['s', 't', 'r', 'i', 'n', 'g']를 출력합니다. len() 함수를 문자열에 사용하면, 문자열에 포함된 문자 수를 셉니다.

연습을 마무리하기 위해, 창고 오른쪽에 있는 금색 X 표시로 걸어가 돼지 새끼들에게 배달될 먹이의 파운드 수를 결정하세요. food라는 변수를 생성하고, 값으로 앞서 생성한 number 변수를 사용하여 35를 곱해 파운드 수를 결정하세요. 예를 들어: food = number * 35

창고를 마주 보고 있으면서 speak() 함수를 사용하여 food 변수와 함께 배달될 먹이의 양을 확인하세요, 다음과 같이: player.speak("There are d% pounds of food coming in" % (food) )

코드북