Προχωρημένο Μάθημα Ανάπτυξης σε Python
Κεφάλαιο
>
Επίπεδο
Μονάδες Χορδών και Χρόνου
Μονάδα Ημερολογίου
Στόχος
Ελέγξτε το ημερολόγιο και ορίστε ημερομηνίες για ορισμένα από τα χρονοδιαγράμματα παράδοσης χρησιμοποιώντας το module Calendar.
Υπάρχουν πολλές αποστολές που έρχονται και πρέπει να τηρηθούν τα χρονοδιαγράμματα ώστε να διανεμηθούν κατά την κατασκευή της νέας φάρμας. Προηγουμένως χρησιμοποιήσαμε το module date για να ρυθμίσουμε τις ετικέτες αποστολής, εδώ θα ορίσουμε τα χρονοδιαγράμματα χρησιμοποιώντας το module calendar. Για να χρησιμοποιήσετε τις κλάσεις και τις συναρτήσεις του module, χρησιμοποιήστε import calendar για να εισάγετε όλα τα σχετικά υλικά.
Για τους σκοπούς μας, θα χρησιμοποιήσουμε τις ακόλουθες συναρτήσεις του module calendar:
calendar.calendar(): Εμφανίζει το πλήρες ημερολόγιο για το έτος, δέχεται ένα (1) όρισμα, το έτος που θέλετε να εμφανίσετε.calendar.month(): Εμφανίζει ένα ημερολόγιο για έναν συγκεκριμένο μήνα, δέχεται δύο (2) ορίσματα, το έτος και τον μήνα.calendar.isleap(): Ελέγχει αν ένα έτος είναι δίσεκτο, δέχεται ένα (1) όρισμα, το έτος που θέλετε να ελέγξετε.calendar.leapdays(): Ελέγχει τον αριθμό των δίσεκτων ημερών που έχουν συσσωρευτεί κατά τη διάρκεια των ετών, δέχεται δύο (2) ορίσματα που αντιπροσωπεύουν τα έτη που απαρτίζουν την περίοδο που θέλετε να ελέγξετε.itermonthdays(): Χρησιμοποιεί την κλάσηCalendar(), διατρέχει όλες τις ημέρες του μήνα, δέχεται δύο ορίσματα, το έτος και τον μήνα.itermonthdates(): Χρησιμοποιεί την κλάσηCalendar(), διατρέχει όλες τις ημερομηνίες του μήνα, δέχεται δύο ορίσματα, το έτος και τον μήνα.monthdayscalendar(): Χρησιμοποιεί την κλάσηCalendar(), διατρέχει όλες τις εβδομάδες του μήνα, δέχεται δύο ορίσματα, το έτος και τον μήνα. Αποθηκεύει τα δεδομένα σε μια εμφωλευμένη λίστα.monthdays2calendar(): Όπως η προηγούμενη συνάρτηση, αλλά αποθηκεύει τις εβδομάδες και τις ημέρες μαζί σε μια δισδιάστατη λίστα.
Για να ξεκινήσετε, περπατήστε μέχρι το χρυσό σημάδι X και ελέγξτε το ημερολόγιο, δημιουργήστε μια μεταβλητή με όνομα cal και αποθηκεύστε την τιμή του calendar.calendar() προσθέτοντας το έτος 2026 ως όρισμα, ως εξής: cal = calendar.calendar(2026). Χρησιμοποιήστε τη συνάρτηση display() για να εμφανίσετε τη μεταβλητή cal που μόλις ορίσατε.
Μετά τον έλεγχο και την εμφάνιση του ημερολογίου, μεταβείτε στο ανοιχτό σημάδι X και ελέγξτε το φύλλο υπολογισμού στο γραφείο. Χρησιμοποιήστε τη συνάρτηση read() για να ελέγξετε τη σημείωση για τον προγραμματισμένο μήνα ημερομηνίας της προμήθειας. Δημιουργήστε δύο μεταβλητές, μία με το όνομα year και μία με το όνομα month, και γεμίστε τις με τις πληροφορίες που διαβάσατε.
Δημιουργήστε μια μεταβλητή με όνομα calendar_month και αποθηκεύστε την τιμή της συνάρτησης calendar.month() χρησιμοποιώντας τις μεταβλητές year και month ως ορίσματα. Χρησιμοποιήστε τη συνάρτηση display() για να εμφανίσετε τον μήνα του ημερολογίου που θα χρησιμοποιηθεί για τον καθορισμό των χρονοδιαγραμμάτων διανομής.
Περπατήστε μέχρι το σκοτεινό σημάδι X πάνω από το πράσινο χαλί, εδώ θα καταγράψουμε μερικά σημεία δεδομένων για να διασφαλίσουμε ότι τα χρονοδιαγράμματα δεν θα είναι μετατοπισμένα. Δημιουργήστε δύο μεταβλητές, μία με το όνομα leap_year και μία με το όνομα leap_days. Για τη μεταβλητή leap_year, αποθηκεύστε το αποτέλεσμα της calendar.isleap() και θέστε ως όρισμα το 2026. Αυτό θα σας επιτρέψει να επαληθεύσετε εάν το τρέχον έτος του έργου είναι δίσεκτο. Για τη μεταβλητή leap_days, αποθηκεύστε την τιμή της calendar.leapdays() και προσθέστε τις τιμές: 2020 και 2027 ως ορίσματα. Αυτό επαληθεύει τον αριθμό των δίσεκτων ημερών που έχουν συμβεί κατά τη διάρκεια όλης της διάρκειας του έργου. Χρησιμοποιήστε την προ-γραμμένη συνάρτηση write() και προσθέστε το leap_year και το leap_days για να καταγράψετε τα δεδομένα.
Περπατήστε μέχρι το σκοτεινό σημάδι X πάνω από το κόκκινο χαλί και στραμμεύστε προς το γραφείο, εδώ θα περιγράψουμε το πρόγραμμα του μήνα. Δημιουργήστε μια μεταβλητή με το όνομα date και αποθηκεύστε την τιμή του calendar.Calendar(), αυτό δημιουργεί ένα αντικείμενο κλάσης στο οποίο μπορούμε να αναφερθούμε αργότερα. Δημιουργήστε μια άλλη μεταβλητή με το όνομα day_roster και δώστε της μια κενή συμβολοσειρά, ώστε να μπορέσουμε να αποθηκεύσουμε τη λίστα ημερών σε μία συμβολοσειρά. Κάτι σαν: day_roster = "".
Έχει προ-γραμμένο στον επεξεργαστή ένας βρόχος for που διατρέχει το ημερολόγιο και περιγράφει τις ημερομηνίες. Χρησιμοποιήστε τη συνάρτηση itermonthdays() και προσθέστε τις μεταβλητές year και month που δημιουργήσατε νωρίτερα ως ορίσματα. Προσθέστε τα απαραίτητα στοιχεία για να ολοκληρώσετε την καταμέτρηση της λίστας.
for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry
Μόλις ρυθμιστεί ο βρόχος, συνεχίστε δημιουργώντας ένα αντίγραφο αυτού του βρόχου, αλλά αντικαταστήστε τη συνάρτηση itermonthdays() με την itermonthdates() και προσθέστε τις μεταβλητές year και month ως ορίσματα. Για τη μεταβλητή entry, καταγράψτε τα δεδομένα ως εξής: entry = "%s \n" % (day). Αυτοί θα μας δώσουν τις πλήρεις ημερομηνίες της διάρκειας του έργου. Χρησιμοποιήστε την προ-γραμμένη συνάρτηση display() με τη μεταβλητή day_roster για να εμφανίσετε ολόκληρη τη λίστα των ημερών του έργου στο ημερολόγιο.
Περπατήστε μέχρι το σκοτεινό σημάδι X πάνω από το μπλε χαλί και στραμμεύστε στη σημείωση, εδώ θα ρυθμίσουμε τις εβδομάδες παρακολούθησης του έργου καταχωρισμένες σε λίστες. Δημιουργήστε μια μεταβλητή με το όνομα weeks και αποθηκεύστε την τιμή του calendar.Calendar(), αυτό δημιουργεί ένα αντικείμενο κλάσης στο οποίο μπορούμε να αναφερθούμε με τις συναρτήσεις. Πάρτε τη μεταβλητή month και αντικαταστήστε την τιμή της με το 7 για να προχωρήσετε στο χρονοδιάγραμμα με το οποίο εργαζόμαστε, ως εξής: month = 7.
Δημιουργήστε μια μεταβλητή με το όνομα week_roster και δώστε της μια κενή συμβολοσειρά, αυτό θα μας επιτρέψει να αποθηκεύσουμε τη λίστα εβδομάδων σε μία συμβολοσειρά. Κάτι σαν: week_roster = "". Έχει προ-γραμμένο στον επεξεργαστή ένας βρόχος for που διατρέχει το ημερολόγιο και περιγράφει τις ημέρες της εβδομάδας. Χρησιμοποιήστε τη συνάρτηση monthdayscalendar() και προσθέστε τις μεταβλητές year και month που δημιουργήσατε νωρίτερα ως ορίσματα. Προσθέστε τα απαραίτητα στοιχεία για να ολοκληρώσετε την καταμέτρηση της λίστας.
for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry
Μόλις ρυθμιστεί ο βρόχος, συνεχίστε δημιουργώντας ένα αντίγραφο αυτού του βρόχου, αλλά αντικαταστήστε τη συνάρτηση monthdayscalendar() με την monthdays2calendar() και προσθέστε τις μεταβλητές year και month ως ορίσματα. Αυτά θα μας δώσουν τις πλήρεις ημερομηνίες της διάρκειας του έργου. Χρησιμοποιήστε την προ-γραμμένη συνάρτηση display() με τη μεταβλητή week_roster για να εμφανίσετε ολόκληρη τη λίστα των ημερών της εβδομάδας του έργου στο ημερολόγιο, προκειμένου να ολοκληρώσετε το επίπεδο.