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

Μαθηματικές Ενότητες
Εισαγωγή στη Μονάδα Μαθηματικών

Στόχος

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

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

import math

Όπως και το προηγούμενο statistics module, το math module διαθέτει μια συλλογή από μαθηματικές συναρτήσεις που μπορούμε να χρησιμοποιήσουμε για να επεκτείνουμε τη built in βιβλιοθήκη της python:

  • math.isnan(): Ελέγχει αν η εισερχόμενη τιμή δεν είναι αριθμός

  • math.isinf(): Ελέγχει αν η εισερχόμενη τιμή είναι ένας άπειρος αριθμός

  • math.isfinite(): Ελέγχει αν η εισερχόμενη τιμή είναι πεπερασμένη

  • math.prod(): Πολλαπλασιάζει όλα τα ορίσματα που προστίθενται

  • math.pow(): Λαμβάνει δύο ορίσματα και επιστρέφει την τιμή του πρώτου ορίσματος υψωμένη στη δύναμη του δεύτερου ορίσματος

  • math.trunc(): Αποκόπτει το παρεχόμενο όρισμα, αφαιρώντας το δεκαδικό από έναν αριθμό κινητής υποδιαστολής, μετατρέποντάς τον σε ακέραιο (δεν στρογγυλοποιεί, απλώς αφαιρεί)

  • math.copysign(): Λαμβάνει δύο ορίσματα, αντιγράφει το πρόσημο (-,+) από το δεύτερο και το εφαρμόζει στο πρώτο

  • math.factorial(): Λαμβάνει ένα όρισμα και υπολογίζει το γινόμενο του αριθμού με όλους τους αριθμούς κάτω από αυτό μέχρι το 1. Για παράδειγμα, αν η τιμή είναι 5, υπολογίζει: 5 x 4 x 3 x 2 x 1 και παράγει ένα αποτέλεσμα.

Θα χρησιμοποιήσουμε αυτές τις συναρτήσεις για να εξετάσουμε και να καταγράψουμε κάποια δεδομένα προκειμένου να προετοιμάσουμε τα έργα ανάπτυξης. Υπάρχουν τρεις σταθερές λίστες που περιέχουν τα σχεδιαγράμματα για την αγροτική γη με ονόματα: red_schematics, green_schematics, blue_schematics. Αυτά τα σχεδιαγράμματα περιέχουν μη αριθμητικές και μη χρησιμοποιήσιμες τιμές. Χρησιμοποιήστε τις συναρτήσεις του math για να εντοπίσετε τα στοιχεία, να βρείτε τα χρήσιμα δεδομένα ώστε να τα καταγράψετε.

Πρώτα, περπατήστε προς το σκοτεινό σημάδι X πάνω από το κόκκινο χαλί και χρησιμοποιήστε έναν βρόχο για να διατρέξετε τα στοιχεία της σταθερής λίστας red_schematics προκειμένου να εντοπίσετε τα χρήσιμα στοιχεία.

for x in red_schematics: y = math.isnan (float(x)) if y == True: player.speak("Not a Number") else: y = math.isinf(float(x)) if y == True: player.speak("Is infinite") else: player.speak(x)

Ο βρόχος θα διατρέξει όλα τα στοιχεία της λίστας, η συνάρτηση math.isnan() θα εντοπίσει τις μη αριθμητικές καταχωρίσεις, ενώ η math.isinf() θα εντοπίσει τις άπειρες τιμές που δεν μπορούν να χρησιμοποιηθούν για τη συλλογή δεδομένων. Δημιουργήστε μια νέα λίστα με όνομα red_values και χρησιμοποιήστε list comprehension για να αφαιρέσετε τα ανεπιθύμητα στοιχεία, εφαρμόζοντας τη math.isfinite() για να τα φιλτράρετε, όπως εξής: red_values = [x for x in red_schematics if math.isfinite(float(x))] .

Στη συνέχεια, προσθέστε όλους τους αριθμούς μαζί χρησιμοποιώντας τη συνάρτηση math.prod() για να πολλαπλασιάσετε όλα τα στοιχεία της λίστας μεταξύ τους, όπως εξής: red_values = math.prod(red_values) .

Εφαρμόστε την ίδια διαδικασία φιλτραρίσματος στα σκοτεινά σημάδια X πάνω από τα πράσινα και μπλε χαλιά, χρησιμοποιώντας τις σταθερές λίστες green_schematics και blue_schematics και συγκεντρώνοντας τα στοιχεία σε λίστες με ονόματα green_values και blue_values.

Περπατήστε προς το χρυσό σημάδι X, στρέψτε προς το γραφείο και χρησιμοποιήστε τη συνάρτηση write() που έχει προ-γραμμιστεί στον επεξεργαστή για να καταγράψετε τα χρήσιμα δεδομένα του σχεδιαγράμματος. Μόλις ενώσετε όλα τα δεδομένα, περπατήστε προς το φωτεινό σημάδι X και χρησιμοποιήστε τη συνάρτηση open() για να αποκτήσετε πρόσβαση στο επόμενο δωμάτιο.

Μόλις μπείτε στο επόμενο δωμάτιο, θα βρείτε μερικά γραφεία με κάποια έγγραφα ιδιοκτησίας και συντεταγμένες. Είναι καλή ιδέα να καταγράψετε κάποια δεδομένα πριν μεταβείτε στον έλεγχο των νέων προσθηκών στη φάρμα στην επόμενη περιοχή, απέναντι από τη γέφυρα. Περπατήστε προς το φωτεινό σημάδι X μπροστά από το κιβώτιο με τους χάρτες δίπλα στο πρώτο γραφείο, και χρησιμοποιήστε τη συνάρτηση read() για να αποκτήσετε δεδομένα ευρετηρίου για τα έγγραφα ιδιοκτησίας.

Περπατήστε προς το σκοτεινό σημάδι X πάνω από το μωβ χαλί, δημιουργήστε μια μεταβλητή με όνομα purple_data και χρησιμοποιήστε τη συνάρτηση math.pow() για να πολλαπλασιάσετε τα δεδομένα που αποκτήσατε ώστε να λάβετε πληροφορίες συντεταγμένων. Θέστε το ευρετήριο στη δύναμη του 3, όπως εξής: purple_data = math.pow( -index data- , 3 ), φροντίστε να προσθέσετε τα δεδομένα ευρετηρίου που διαβάσατε προηγουμένως. Χρησιμοποιήστε τη συνάρτηση math.trunc() για να αφαιρέσετε τα δεκαδικά από τη μεταβλητή, όπως εξής: purple_data = math.trunc(purple_data) . Μόλις ολοκληρωθεί, στο σημάδι X, χρησιμοποιήστε τη συνάρτηση write() που έχει προ-γραμμιστεί στον επεξεργαστή μαζί με την purple_data για να καταγράψετε τα δεδομένα που είναι αποθηκευμένα στη μεταβλητή.

Για να ολοκληρώσετε, περπατήστε προς το φωτεινό σημάδι X μπροστά από το αρχειακό ντουλάπι δίπλα στο επάνω γραφείο. Χρησιμοποιήστε τη συνάρτηση read() για να αποκτήσετε ξανά δεδομένα ευρετηρίου, τα οποία πρέπει να αποσυμπιεστούν για να αποκαλύψουν περισσότερες πληροφορίες συντεταγμένων για την ιδιοκτησία. Δημιουργήστε μια μεταβλητή με όνομα white_data για να αποθηκεύσετε την τιμή των δεδομένων που βρέθηκαν στο αρχείο και μια μεταβλητή με όνομα sign για να αποθηκεύσετε τον αριθμό του προσήμου που βρέθηκε στο αρχείο. Περπατήστε στο σκοτεινό σημάδι X πάνω από το άσπρο χαλί και χρησιμοποιήστε τη συνάρτηση math.copysign(), δίνοντας ως ορίσματα τις δύο μεταβλητές που δημιουργήσατε, και αναθέστε την τιμή στην white_data, όπως εξής: white_data = math.copysign(white_data,sign) .

Μόλις ολοκληρωθεί, με την white_data, χρησιμοποιήστε τη συνάρτηση math.factorial() για να υπολογίσετε το γινόμενο του ευρετηρίου, μετατρέποντας την white_data σε ακέραιο και χρησιμοποιώντας την μαζί με τη συνάρτηση, όπως εξής: white_data = math.factorial(int(white_data)) . Χρησιμοποιήστε τη προ-γραμμισμένη συνάρτηση write() για να καταγράψετε την white_data προκειμένου να ολοκληρώσετε το επίπεδο.

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