Coding for KidsCoding for Kids
Δημιουργικά ΕπίπεδαΠροκλήσειςΟδηγός Εκπαιδευτικού
Ψηφίστε για λειτουργίες
Προχωρημένο Μάθημα Ανάπτυξης σε Python
Κεφάλαιο
>
Επίπεδο

Προχωρημένες Συναρτήσεις
Πολυμορφικές Συναρτήσεις

Σε αυτό το κεφάλαιο θα εξερευνήσουμε νέους τύπους συναρτήσεων, διάφορες χρήσεις για αυτές και πώς να τις αξιοποιήσουμε στο έπακρο όταν προγραμματίζουμε σε Python.

Σε αυτό το επίπεδο ξεκινάμε με τις πολυμορφικές συναρτήσεις, δηλαδή συναρτήσεις που μπορούν να χρησιμοποιηθούν με μια ποικιλία διαφορετικών τύπων δεδομένων. Είναι σαν να χρησιμοποιείτε την ίδια συνάρτηση για να κάνετε διάφορα πράγματα, μια καθολική συνάρτηση.

Guide

Στόχος

Ελέγξτε την κατάσταση των καλλιεργειών και των γουρούνων, και επιβεβαιώστε τις αποστολές προμηθειών χρησιμοποιώντας πολυμορφικές συναρτήσεις.

Σύντομα, θα πρέπει να υπάρχουν κάποιες καλλιέργειες που χρειάζονται θερισμό ώστε να αποσταλούν προς πώληση. Τα γουρούνια επίσης χρειάζονται να παραδοθεί τροφή, θα ήταν καλή ιδέα να δείτε πόση τροφή πρέπει να παραγγελθεί. Για να επιτύχετε αυτούς τους στόχους, μπορείτε να χρησιμοποιήσετε πολυμορφικές συναρτήσεις, στην προκειμένη περίπτωση θα χρησιμοποιήσουμε τη συνάρτηση len().

Οι πολυμορφικές συναρτήσεις είναι συναρτήσεις που μπορούν να χρησιμοποιηθούν με πολλούς διαφορετικούς τύπους δεδομένων. Για παράδειγμα, η συνάρτηση len() χρησιμοποιείται για τον υπολογισμό του μήκους αντικειμένων. Αυτά τα αντικείμενα μπορούν να είναι διαφορετικοί τύποι δεδομένων, όπως λίστες, λεξικά και ακόμη και συμβολοσειρές. Ξεκινήστε καταγράφοντας τα αποτελέσματα πάνω στα χαμηλά σημάδια X στο χωράφι, προτού μεταβείτε στα υψηλότερα σημάδια X στο αποθήκη.

Υπάρχουν αρκετά γουρούνια μέσα σε ένα κλουβί δίπλα στον δρόμο, τα ονόματά τους είναι "Peggle", "Peter", "Piper", "Pedro". Βάλτε τα ονόματά τους σε μια λίστα ώστε να μπορείτε να τα καταγράψετε. Όπως εδώ: piglets = ["Peggle", "Peter", "Piper", "Pedro"] . Δημιουργήστε μια μεταβλητή με όνομα number για να αποθηκεύσετε το μήκος της λίστας χρησιμοποιώντας τη συνάρτηση len(), όπως εδώ: number = len(piglets).

Αφού έχετε δημιουργήσει τη λίστα και τη μεταβλητή, περπατήστε στο σκούρο σημάδι X μπροστά από το κλουβί των γουρούνων, στραφείτε προς το κλουβί και χρησιμοποιήστε τη συνάρτηση speak() για να μετρήσετε τα γουρούνια, χρησιμοποιώντας τη συνάρτηση 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() και αποσυσκευάζοντας τη συμβολοσειρά, καθώς και χρησιμοποιώντας τη συνάρτηση 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) ).

Βιβλίο Κώδικα