Coding for KidsCoding for Kids
Luovat TasotHaasteetOpettajan Opas
Äänestä ominaisuuksia
Edistynyt Python-kehityskurssi
Luku
>
Taso

Edistyneet funktiot
Polymorfiset funktiot

Tässä luvussa tutkimme uusia funktiotyyppejä, niiden erilaisia käyttötapoja ja kuinka hyödyntää niitä parhaalla mahdollisella tavalla Python-ohjelmoinnissa.

Tällä tasolla aloitamme polymorfisilla funktioilla; nämä ovat funktioita, joita voidaan käyttää eri tietotyyppien kanssa. Se on kuin käyttäisi samaa funktiota eri tarkoituksiin, universaalia funktiota.

Guide

Tavoite

Tarkista viljelyskasvien ja porsasten tila, ja vahvista toimituslähetykset polymorfisten funktioiden avulla.

Hyvin pian markkinoille lähtevien myyntiin tarkoitetut viljelyskasvit tulee korjattavaksi. Porsaat tarvitsevat myös ruokaa toimitettavaksi; olisi hyvä tietää, kuinka paljon ruokaa täytyy tilata. Näiden tehtävien hoitamiseksi voit käyttää polymorfisia funktioita, tässä tapauksessa käytämme len()-funktiota.

Polymorfiset funktiot ovat funktioita, joita voidaan käyttää useilla eri tietotyypeillä. Esimerkiksi len()-funktiota käytetään objektien pituuden laskemiseen. Nämä objektit voivat olla eri tietotyyppejä, kuten listoja, sanakirjoja ja jopa merkkijonoja. Aloita laskemalla teltun arvo alimmilla X-merkeillä pellolla ennen kuin siirryt varaston ylempiin X-merkkeihin.

Tien varrella olevassa aitauksessa on useita porsaita, joiden nimet ovat "Peggle", "Peter", "Piper", "Pedro". Laita heidän nimensä listaan, jotta voit laskea ne. Näin: piglets = ["Peggle", "Peter", "Piper", "Pedro"] . Luo muuttuja nimeltä number tallentaaksesi listan pituuden käyttämällä len()-funktiota, näin: number = len(piglets).

Kun olet luonut listan ja muuttujan, kävele porsasaidan edessä olevaan tumman X-merkkiin, käänny aitauksen suuntaan ja käytä speak()-funktiota laskiaksesi porsaat. Käytä number-muuttujaa saadaksesi tuloksen, näin: player.speak("There are d% Piglets" % (number) )

Kun olet tarkastanut porsaat, kävele kevyempään X-merkkiin pellolla, käänny viljelyskasvien suuntaan ja laske ne. Kasveja on kolmea (3) erilaista tyyppiä: "Tomatoes", "Pumpkins", "Eggplant". Laske, kuinka monta kutakin viljelyskasvia kasvaa, ja tallenna ne sanakirjaan, näin:

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

Kun olet täyttänyt sanakirjan oikeilla arvoilla, käytä speak()-funktiota yhdessä len()-funktion kanssa laskeaksesi saatavilla olevien viljelyskasvien lukumäärän, näin: player.speak("There are d% types of crops" % ( len(crops) ) ).

Kun olet laskenut sekä porsaat että viljelyskasvit, kävele tummalle X-merkille violettikankaalla tarkistaaksesi viljelyskasvien toimitustilaukset. On olemassa vakio muuttuja nimeltä order, joka sisältää tekstin, jossa on tilaukset viljelyskasveille, jotka on lähetettävä. Meidän täytyy selvittää, mitä tilauksia on ja kuinka monta tilausta meillä on. Voimme tehdä tämän käyttämällä speak()-funktiota, avaamalla merkkijonon ja käyttämällä len()-funktiota.

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

Asettamalla merkkijonomuuttuja hakasulkeiden sisään ja lisäämällä * voimme aktivoida operaattorin, joka purkaa merkkijonon. Esimerkiksi: [*string] ottaa merkkijonon ja erottaa siitä jokaisen yksittäisen merkin, asettaen ne listaan. Esimerkiksi: [*string] antaa tuloksena listan ['s', 't', 'r', 'i', 'n', 'g']. Kun len()-funktiota käytetään merkkijonolle, se laskee, kuinka monta merkkiä merkkijonossa on.

Harjoituksen lopuksi, kävele kultaiselle X-merkille varaston oikealle puolelle ja määritä, kuinka monta paunaa ruokaa täytyy toimittaa porsaille. Luo muuttuja nimeltä food; käytä arvona aiemmin luotua number-muuttujaa ja kerro se luvulla 35 määrittääksesi paunien määrän, näin: food = number * 35.

Seisoessasi varaston edessä, käytä speak()-funktiota yhdessä food-muuttujan kanssa määrittääksesi toimitettavan ruoan määrän, näin: player.speak("There are d% pounds of food coming in" % (food) ).

Koodikirja