Corso Avanzato di Sviluppo Python
Capitolo
>
Livello
Moduli per stringhe e tempo
Modulo Calendario
Obiettivo
Controlla il calendario e imposta le date per alcune delle scadenze di consegna utilizzando il modulo Calendar.
Ci sono diverse spedizioni in arrivo e orari da rispettare affinché possano essere distribuiti nell'ambito della nuova costruzione della fattoria. In precedenza abbiamo usato il modulo date per impostare le etichette di spedizione; qui imposteremo gli orari utilizzando il modulo calendar. Per poter utilizzare le classi e le funzioni del modulo, usa import calendar per importare tutto il materiale pertinente.
Per i nostri scopi, utilizzeremo le seguenti funzioni del modulo calendar:
calendar.calendar():Visualizza il calendario completo per l'anno, prende un (1) argomento, ovvero l'anno che si desidera visualizzare.calendar.month():Visualizza un calendario per un singolo mese, prende due (2) argomenti, l'anno e il mese.calendar.isleap():Verifica se un anno è bisestile, prendendo un (1) argomento, cioè l'anno da controllare.calendar.leapdays():Verifica il numero di giorni bisestili accumulati nel corso degli anni, prendendo due (2) argomenti che rappresentano gli anni che coprono il periodo da controllare.itermonthdays():Utilizza la classeCalendar(), iterando attraverso tutti i giorni del mese, prende due argomenti, l'anno e il mese.itermonthdates():Utilizza la classeCalendar(), iterando attraverso tutte le date del mese, prende due argomenti, l'anno e il mese.monthdayscalendar():Utilizza la classeCalendar(), iterando attraverso tutte le settimane del mese, prende due argomenti, l'anno e il mese. Memorizza i dati in una lista annidata.monthdays2calendar():Funziona come la funzione precedente ma memorizza settimane e giorni insieme in una lista bidimensionale.
Per iniziare, dirigiti verso il segno X dorato e controlla il calendario. Crea una variabile chiamata cal e assegna il valore di calendar.calendar() aggiungendo l'anno 2026 come argomento, in questo modo: cal = calendar.calendar(2026). Usa la funzione display() per visualizzare la variabile cal appena impostata.
Dopo aver controllato e visualizzato il calendario, dirigiti verso il segno X chiaro e controlla il foglio di calcolo sulla scrivania. Usa la funzione read() per verificare il promemoria relativo al mese di data programmata per la fornitura. Crea due variabili, una chiamata year e una chiamata month, e popolale con le informazioni lette.
Crea una variabile chiamata calendar_month e assegna il valore della funzione calendar.month() utilizzando le variabili year e month come argomenti. Usa la funzione display() per mostrare il calendario del mese, che verrà utilizzato per impostare gli orari di distribuzione.
Dirigiti verso il segno X scuro sul tappeto verde, dove annoteremo alcuni punti dati per garantire che gli orari non siano sfasati. Crea due variabili, una chiamata leap_year e una chiamata leap_days. Per la variabile leap_year assegna il risultato di calendar.isleap() impostando 2026 come argomento. Questo ti permetterà di verificare se l'anno del progetto corrente è bisestile. Per la variabile leap_days, assegna il valore di calendar.leapdays() aggiungendo i valori: 2020 e 2027 come argomenti. Ciò verifica il numero di giorni bisestili occorsi durante l'intera durata del progetto. Usa la funzione predefinita write() e aggiungi leap_year e leap_days per registrare i dati.
Dirigiti verso il segno X scuro sul tappeto rosso e rivolgi lo sguardo verso la scrivania, dove delineeremo il programma del mese. Crea una variabile chiamata date e assegna il valore di calendar.Calendar(), in modo da creare un oggetto di classe a cui potremo fare riferimento in seguito. Crea un'altra variabile chiamata day_roster e assegna una stringa vuota, in modo da poter memorizzare il registro dei giorni in una stringa. In questo modo: day_roster = "".
Pre-scritto nell'editor c'è un ciclo for che itera attraverso il calendario e delinea le date. Utilizza la funzione itermonthdays() e passa le variabili year e month create in precedenza come argomenti. Aggiungi gli elementi mancanti necessari per completare il conteggio del registro.
for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry
Una volta configurato il ciclo, prosegui creando una duplicazione di questo ciclo, ma sostituisci la funzione itermonthdays() con itermonthdates() e passa le variabili year e month come argomenti. Per la variabile entry, fai in modo che registri i dati in questo modo: entry = "%s \n" % (day). Questi ti forniranno le date complete della durata del progetto. Usa la funzione predefinita display() con la variabile day_roster per visualizzare l'intero registro dei giorni del progetto nel calendario.
Dirigiti verso il segno X scuro sul tappeto blu e rivolgi lo sguardo al promemoria, dove configureremo il catalogo delle settimane di follow up del progetto organizzate in liste. Crea una variabile chiamata weeks e assegna il valore di calendar.Calendar(), in modo da creare un oggetto di classe a cui potremo fare riferimento per le funzioni. Sostituisci il valore della variabile month con 7 per spostare il calendario su cui stiamo lavorando, in questo modo: month = 7.
Crea una variabile chiamata week_roster e assegna una stringa vuota, in modo da poter memorizzare il registro delle settimane in una stringa. In questo modo: week_roster = "". Pre-scritto nell'editor c'è un ciclo for che itera attraverso il calendario e delinea i giorni della settimana. Utilizza la funzione monthdayscalendar() e passa le variabili year e month create in precedenza come argomenti. Aggiungi gli elementi mancanti necessari per completare il conteggio del registro.
for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry
Una volta configurato il ciclo, prosegui creando una duplicazione di questo ciclo, ma sostituisci la funzione monthdayscalendar() con monthdays2calendar() e passa le variabili year e month come argomenti. Questi ti forniranno le date complete della durata del progetto. Usa la funzione predefinita display() con la variabile week_roster per visualizzare l'intero registro dei giorni lavorativi del progetto nel calendario, completando così il livello.