Προχωρημένο Μάθημα Ανάπτυξης σε Python
Κεφάλαιο
>
Επίπεδο
Ενότητες Μαθηματικών
Μονάδα Τελεστών
Στόχος
Επαλήθευσε και κατανόμησε τις νέες παραγγελίες οικοδομικών υλικών για τη νέα ανάπτυξη γης χρησιμοποιώντας το module operator.
Ο πάνω όροφος του προσθήκου διαθέτει μερικά γραφεία που διατηρούν αρχεία αποθέματος και παραγγελιών για τα οικοδομικά υλικά που απαιτούνται για τη νέα ανάπτυξη γης. Υπάρχουν διάφορα εργαλεία που μπορούν να χρησιμοποιηθούν για την επαλήθευση και τον υπολογισμό των υλικών ώστε να χρησιμοποιηθούν στην κατασκευή. Εκτός από το module math and statistics, μπορούμε να χρησιμοποιήσουμε το module operator.
Αυτό το module, import operator, μπορεί να χρησιμοποιηθεί για την απλοποίηση υπολογισμών με τελεστές και για την άνετη ενσωμάτωσή τους σε συναρτήσεις. Μπορείς να χρησιμοποιήσεις αυτές τις συναρτήσεις τόσο για βελτιστοποίηση όσο και για την παραγωγή τιμών χωρίς την ανάγκη δημιουργίας αντικειμένου για την αποθήκευση των τιμών των υπολογισμών.
operators.eq(): Δέχεται δύο παραμέτρους, ελέγχει αν οι παράμετροι είναι ίσες μεταξύ τους.operators.lt(): Δέχεται δύο παραμέτρους, ελέγχει αν η πρώτη παράμετρος είναι μικρότερη από τη δεύτερη.operators.gt(): Δέχεται δύο παραμέτρους, ελέγχει αν η πρώτη παράμετρος είναι μεγαλύτερη από τη δεύτερη.operators.floordiv(): Δέχεται δύο παραμέτρους, διαιρεί την πρώτη παράμετρο με τη δεύτερη και εφαρμόζει το ισοδύναμο τουmath.floor(), στρογγυλοποιώντας το αποτέλεσμα προς τα κάτω.operators.mod(): Δέχεται δύο παραμέτρους, επιστρέφει το υπόλοιπο της διαίρεσης μεταξύ των δύο παραμέτρων.operators.contains(): Η συνάρτηση χρησιμοποιείται με μια λίστα, δέχεται δύο (2) παραμέτρους, η πρώτη είναι μια λίστα και η δεύτερη μια τιμή που θέλεις να ελέγξεις αν υπάρχει μέσα στη λίστα. Επιστρέφει:trueήfalseανάλογα με το αν η τιμή είναι παρούσα ή όχι.operators.concat(): Δέχεται δύο παραμέτρους λιστών, συνδυάζει τις δύο λίστες μαζί χρησιμοποιώντας μια καθαρή συνάρτηση, και μπορεί να είναι πιο γρήγορη από άλλες μεθόδους.operators.countOf(): Δέχεται δύο παραμέτρους, μια λίστα και μια τιμή, για να ελέγξει πόσες φορές αυτή η τιμή εμφανίζεται στη λίστα. Επιστρέφει τον αριθμό των περιπτώσεων που εμφανίζεται η τιμή.
Για να ξεκινήσεις, πήγαινε προς το σκοτεινό σημάδι X πάνω από τα κόκκινα, μπλε και πράσινα χαλιά. Υπάρχουν έξι (6) σταθερές: red_order, blue_order, green_order, που είναι οι παραγγελίες για τα υλικά, και: red_req, blue_req, green_req, που είναι οι απαιτούμενες ποσότητες για την κατασκευή.
Στο σκοτεινό σημάδι X πάνω από το κόκκινο χαλί, χρησιμοποίησε τη συνάρτηση read() για να ελέγξεις την απαιτούμενη ποσότητα υλικών. Δημιούργησε μια μεταβλητή με όνομα red_verification και χρησιμοποίησε τη συνάρτηση operator.eq() με τις σταθερές red_order και red_req, ως εξής: red_verification = operator.eq(red_order,red_req). Χρησιμοποιώντας την προ-γραμμένη συνάρτηση write(), εμφάνισε το αποτέλεσμα με τη μεταβλητή red_verification.
Στα σημάδια X των μπλε και πράσινων χαλιών, επανάλαβε την ίδια διαδικασία: χρησιμοποίησε τη συνάρτηση read() και δημιούργησε τις μεταβλητές: blue_verification και green_verification. Για τη μπλε μεταβλητή, αποθήκευσε την τιμή του operator.lt() χρησιμοποιώντας τις σταθερές blue_order και blue_req για να ελέγξεις αν η παραγγελία είναι μικρότερη από αυτή που απαιτείται. Για την πράσινη μεταβλητή, αποθήκευσε την τιμή του operator.gt() χρησιμοποιώντας τις σταθερές green_order και green_req για να ελέγξεις αν η παραγγελία είναι μεγαλύτερη από τα απαιτούμενα υλικά. Χρησιμοποίησε τις προ-γραμμένες συναρτήσεις write() με τις αντίστοιχες συναρτήσεις επαλήθευσης που αντιστοιχούν στα έγχρωμα χαλιά.
Στη συνέχεια, πήγαινε στο ανοιχτό σημάδι X και πάνω στο γραφείο χρησιμοποίησε τη συνάρτηση read() για να ελέγξεις τις παραγγελίες που έχουν ήδη τοποθετηθεί και βρίσκονται καθ' οδόν. Στο βιβλίο παραγγελιών θα βρεις τις τιμές δύο μεταβλητών σταθερών: main_order και sub_order, καθώς και πόσα τμήματα πρέπει να διαιρεθούν τα υλικά. Μετά την ανάγνωση του βιβλίου παραγγελιών, δημιούργησε μια μεταβλητή με όνομα allocations και αποθήκευσε την τιμή του operator.floordiv() για να διαιρέσεις την τιμή του main_order με τον αριθμό των τμημάτων που περιγράφονται στο βιβλίο, ως εξής: allocations = operator.floordiv(main_order, -add sections-). Αυτό θα διαιρέσει την παραγγελία και θα στρογγυλοποιήσει το αποτέλεσμα προς τα κάτω. Χρησιμοποίησε την προ-γραμμένη συνάρτηση write() με τη μεταβλητή allocations για να καταγράψεις το αποτέλεσμα.
Πήγαινε στο χρυσό σημάδι X και δημιούργησε μια μεταβλητή με όνομα remainder. Αποθήκευσε το αποτέλεσμα του operator.mod(), το οποίο προσθέτει τις σταθερές main_order και sub_order για να παράγει το υπόλοιπο των δύο παραγγελιών. Στο γραφείο, χρησιμοποίησε την προ-γραμμένη συνάρτηση write() και πρόσθεσε τη μεταβλητή remainder για να καταγράψεις το αποτέλεσμα.
Πήγαινε στο σκοτεινό σημάδι X πάνω από το μωβ χαλί, εδώ θα επαληθεύσουμε αν παραδόθηκαν τα εργαλεία που χρειάζονται για την κατασκευή. Διαθέτουμε δύο σταθερές λίστες, delivery_1 και delivery_2, και θα ελέγξουμε αν τα εργαλεία παραδόθηκαν στην πρώτη παράδοση. Δημιούργησε μια μεταβλητή με όνομα tools και αποθήκευσε το αποτέλεσμα του operator.contains(). Για το πρώτο όρισμα πρόσθεσε τη λίστα delivery_1 και για το δεύτερο όρισμα πρόσθεσε το string “tools”. Αυτό θα ελέγξει αν τα εργαλεία υπάρχουν στην παράδοση, ως εξής: tools = operator.contains(delivery_1,"tools"). Μόλις ολοκληρωθεί, στο γραφείο, χρησιμοποίησε την προ-γραμμένη συνάρτηση write() με τη μεταβλητή tools για να καταγράψεις αν τα εργαλεία παραδόθηκαν επιτυχώς.
Στη συνέχεια, για να ελέγξεις όλες τις παραδόσεις, πήγαινε στο σκοτεινό σημάδι X πάνω από το άσπρο χαλί και δημιούργησε μια λίστα με όνομα materials. Χρησιμοποίησέ την για να αποθηκεύσεις την τιμή του operator.concat(), χρησιμοποιώντας τις λίστες delivery_1 και delivery_2 ως ορίσματα. Αυτό συγχωνεύει γρήγορα τις δύο λίστες σε μια ενιαία λίστα. Στο γραφείο, χρησιμοποίησε την προ-γραμμένη συνάρτηση write() με τη μεταβλητή materials για να καταγράψεις όλα τα υλικά που έχουν ήδη παραδοθεί για την κατασκευή.
Τέλος, περπάτα στο σκοτεινό σημάδι X πάνω από το πορτοκαλί χαλί. Εδώ υπάρχουν κάποιες προϋποθέσεις για την έναρξη της κατασκευής, και μία από τις βασικές σημειώσεις είναι πόσο ξύλο απαιτείται στην αρχή σε τόνους. Έλεγξε πόσο ξύλο παραδόθηκε σε ολόκληρη την παράδοση και ανακοίνωσέ το, χρησιμοποιώντας τη συνάρτηση speak() μαζί με τη συνάρτηση operator.countOf(). Για το πρώτο όρισμα πρόσθεσε τη λίστα materials που δημιούργησες, ακολουθούμενη από το string “wood”. Αυτό θα επιστρέψει πόσες φορές εμφανίζεται το ξύλο στη λίστα materials. Αυτό δείχνει πώς οι συναρτήσεις του operator μπορούν να χρησιμοποιηθούν αυτόνομα, χωρίς την ανάγκη δημιουργίας αντικειμένου για αποθήκευση, ως εξής: player.speak(operator.countOf(materials,"wood")). Αυτό θα ολοκληρώσει το επίπεδο.