Coding for KidsCoding for Kids
Poziomy KreatywneWyzwaniaPrzewodnik dla Nauczycieli
Głosuj na funkcje
Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom

Funkcje zaawansowane
Funkcje polimorficzne

W tym rozdziale przyjrzymy się nowym typom funkcji, ich różnym zastosowaniom oraz sposobom maksymalnego wykorzystania podczas programowania w Pythonie.

Na tym etapie zaczynamy od funkcji polimorficznych, czyli funkcji, które mogą być używane z różnymi typami danych. To tak, jakby używać tej samej funkcji do wykonywania różnych zadań, funkcji uniwersalnej.

Guide

Cel

Sprawdź stan upraw i prosiąt oraz potwierdź wysyłki dostaw, używając funkcji polimorficznych.

Niebawem powinny pojawić się uprawy do zbiorów, aby mogły zostać wysłane do sprzedaży. Prosięta również muszą dostać pożywienie, warto sprawdzić, ile jedzenia trzeba zamówić. Aby wykonać te zadania, możesz użyć funkcji polimorficznych, w tym przypadku skorzystamy z funkcji len().

Funkcje polimorficzne to funkcje, które mogą być używane z różnymi typami danych. Na przykład funkcja len() służy do obliczania długości obiektów, które mogą mieć różne typy danych, takie jak listy, słowniki, a nawet ciągi znaków. Zacznij od zbierania wyników przy dolnych oznaczeniach X znajdujących się na polu, zanim przejdziesz do wyższych oznaczeń X w szopie.

W zagrodzie przy drodze znajduje się kilka prosiąt. Nazywają się one: "Peggle", "Peter", "Piper", "Pedro". Umieść ich imiona w liście, aby móc je zliczyć. W ten sposób: piglets = ["Peggle", "Peter", "Piper", "Pedro"].

Utwórz zmienną o nazwie number, aby przechowywać długość listy, używając funkcji len(), w ten sposób: number = len(piglets).

Gdy utworzysz listę i zmienną, udaj się do ciemnego znaku X przed zagrodą dla prosiąt, ustaw się twarzą do zagrody i użyj funkcji speak(), aby policzyć prosięta. Użyj zmiennej number, aby uzyskać wynik, tak jak w przykładzie: player.speak("There are d% Piglets" % (number) )

Po sprawdzeniu prosiąt, udaj się do jasnego znaku X przy polu, ustaw się twarzą do upraw i policz je. Istnieją trzy (3) różne rodzaje upraw: "Tomatoes", "Pumpkins", "Eggplant". Policzyć, ile upraw rośnie z każdego typu i zapisz je w słowniku, w ten sposób:

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

Gdy wypełnisz słownik odpowiednimi wartościami, użyj funkcji speak() wraz z funkcją len(), aby policzyć liczbę dostępnych upraw, jak w poniższym przykładzie: player.speak("There are d% types of crops" % ( len(crops) ) ).

Po policzeniu zarówno prosiąt, jak i upraw, udaj się do ciemnego znaku X na fioletowym dywanie, aby sprawdzić zamówienia na wysyłkę upraw. Istnieje stała zmienna o nazwie order, która zawiera ciąg znaków z zamówieniami na uprawy, które mają zostać wysłane. Musimy dowiedzieć się, jakie są zamówienia i ile ich jest. Możemy to zrobić, używając funkcji speak() i rozpakowując ciąg znaków, a także korzystając z funkcji len().

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

Umieszczając zmienną typu string wewnątrz nawiasów i dodając *, aktywujemy operator rozpakowujący ciąg znaków, na przykład: [*string]. Działa to w ten sposób, że dzieli ciąg znaków na pojedyncze znaki, tworząc listę. Przykładowo, [*string] wyświetli listę ['s', 't', 'r', 'i', 'n', 'g']. Używając funkcji len() na ciągu znaków, policzy ona liczbę znaków w ciągu.

Aby zakończyć ćwiczenie, udaj się do złotego znaku X po prawej stronie szopy i określ, ile funtów jedzenia trzeba dostarczyć dla prosiąt. Utwórz zmienną o nazwie food, której wartość obliczysz, mnożąc wcześniej utworzoną zmienną number przez 35, w ten sposób: food = number * 35.

Stojąc twarzą do szopy, użyj funkcji speak() wraz ze zmienną food, aby określić ilość dostarczanego jedzenia, w ten sposób: player.speak("There are d% pounds of food coming in" % (food) ).

Księga Kodów