Coding for KidsCoding for Kids
Livelli CreativiSfideGuida per Insegnanti
Vota per le funzionalità
Corso Avanzato di Sviluppo Python
Capitolo
>
Livello

Moduli Stringa e Tempo
Modulo Data/Ora

Obiettivo

Regola i record e imposta le date di spedizione per le forniture utilizzando le funzioni del modulo Date & Time.

Il piano inferiore dell'ala della nuova area di costruzione è un magazzino contenente alcune delle forniture recentemente consegnate che sono state imballate e pronte per essere spedite nelle aree intorno alla nuova costruzione. Devono essere etichettate con le date e gli orari corretti, e bisogna assicurarsi che eventuali etichette già applicate contengano tutte le informazioni rilevanti. Per fare ciò potremmo prenderci il tempo per scrivere e formattare manualmente date e orari, ma c'è un modo molto più rapido per farlo utilizzando il modulo date and time.

Il modulo date and time viene importato scrivendo import datetime, sbloccando una serie di potenti funzioni che ti permettono di leggere e impostare orari e date formattate che puoi memorizzare in oggetti. Puoi anche usare: from datetime import timezone, timedelta per impostare i fusi orari. Le seguenti funzioni vengono sbloccate importando il modulo:

  • datetime.datetime(): Permette di impostare e memorizzare un orario a tua scelta, accetta diversi argomenti come: year, month, day, hour, minute, second, microsecond, timezone. Non è necessario inserire tutti gli argomenti, ma solo quelli che desideri utilizzare.
  • datetime.datetime.now(): Restituisce la data e l'orario attuali, come apparirebbero su un orologio.
  • datetime.datetime.date(): Restituisce solo la data del datetime, senza l'orario.
  • datetime.datetime.time(): Restituisce solo l'orario del datetime, senza la data.
  • datetime.datetime.timestamp(): Restituisce il timestamp del datetime come codice UNIX.
  • timezone(): Permette di impostare un fuso orario da utilizzare con gli argomenti di data e orario.
  • datetime.strftime(): Permette di estrarre informazioni specifiche di data e orario e formattarle a piacimento utilizzando codici specifici. Per i nostri scopi utilizzeremo i seguenti codici:
    • "%a": Giorno della settimana, abbreviato
    • "%d": Giorno del mese
    • "%B": Nome del mese, scritto per esteso
    • "%I": Ora, ciclo di dodici ore
    • "%M": Minuto
    • "%p": Meridiano, AM/PM
    • "%x": Formato data locale
    • "%X": Formato orario locale
    • "%j": Giorno dell'anno
    • "%U": Settimana dell'anno
    • "%z": Fuso orario UTC

Per iniziare, cammina verso il segno a croce X chiaro e rivolgi lo sguardo verso la scrivania, usa la funzione read() per controllare le date di imballaggio per le spedizioni, nonché le date di inizio e fine dei progetti. Prendi nota delle date di inizio e fine indicate nel documento (mese/giorno/anno). I primi tre (3) dati scritti nel promemoria, così come il fuso orario, sono pre-scritti nell'editor del codice per facilitare l'uso nelle funzioni successive.

Nello stesso spazio, crea una variabile denominata today e memorizza in essa il valore restituito da datetime.datetime.now(). Usa str() per convertire il valore in una stringa, in modo che sia in un formato leggibile, come segue: today = str(datetime.datetime.now()). Usa la funzione display() per annotare la data di oggi sul promemoria; con ciò, la data per le assegnazioni di spedizione viene impostata e puoi iniziare ad aggiungere i dati mancanti nelle aree necessarie.

Cammina fino al segno a croce X dorato accanto alla scrivania; qui calcoleremo e annoteremo il numero di giorni necessari per completare questo progetto. Nell'editor sono presenti due variabili denominate start e end che memorizzano valori datetime. Annota le date di inizio e fine che hai precedentemente letto negli spazi forniti. Crea una variabile denominata result e memorizza in essa il risultato della sottrazione tra le variabili end e start. Usa la funzione str() per convertire il valore in una stringa leggibile, come segue: result = str(end-start). Usa la funzione write() per annotare la variabile result, in modo da indicare la durata del progetto.

Da qui, ci sposteremo verso il segno a croce X dorato accanto al tappeto rosso e scenderemo fino ai segni a croce X accanto alle casse del tappeto rosso nella colonna di sinistra. Qui aggiungeremo parti specifiche delle date di imballaggio mancanti sulle casse utilizzando datetime(). Nell'editor sarà presente una data pre-scritta assegnata alla variabile red_date; estrarremo vari dettagli e li utilizzeremo per etichettare le casse.

Per i tappeti rossi:

  • Sul segno a croce X dorato, rivolgi lo sguardo verso le casse e crea una variabile denominata red_days in cui memorizzare la data senza l'orario, utilizzando date() dalla variabile red_date e convertendola con str(), in questo modo: red_days = str(red_date.date()). Usa la funzione write() per etichettare le casse con red_days.

  • Sul segno a croce X chiaro, rivolgi lo sguardo verso le casse e crea una variabile denominata red_time in cui memorizzare l'orario senza la data, utilizzando time() dalla variabile red_date e convertendolo con str(), in questo modo: red_time = str(red_date.time()). Usa la funzione write() per etichettare le casse con red_time.

  • Sul segno a croce X scuro, rivolgi lo sguardo verso le casse e crea una variabile denominata red_timestamp in cui memorizzare il timestamp calcolato dalla variabile red_date, in questo modo: red_timestamp = red_date.timestamp(). Usa la funzione write() per etichettare le casse con red_timestamp.

Procedi quindi passando ai segni a croce X davanti alle casse del tappeto blu. Come in precedenza, c'è una serie di tre (3) segni a croce colorati, in questo caso riferiti alla variabile pre-scritta blue_date per completare le etichette. Attraversa la colonna e utilizza la funzione strftime() per aggiungere gli elementi mancanti alle etichette di spedizione. A differenza delle funzioni precedenti, questa richiede un codice specifico per estrarre e formattare gli elementi nella data target. Ad esempio, se vuoi ottenere il giorno della settimana per la variabile blue_date, utilizzerai il codice "%a" insieme alla funzione strftime() in questo modo: blue_date.strftime("%a").

Per i segni a croce X accanto alle casse del tappeto blu, utilizza la funzione strftime() con il codice specifico richiesto. Consulta la lista dei codici precedentemente descritta in base ai requisiti. Per il tappeto blu:

  • Sul segno a croce X dorato, rivolgi lo sguardo verso le casse e crea una variabile denominata blue_weekday in cui memorizzare il giorno della settimana utilizzando strftime() dalla variabile blue_date in questo modo: blue_day = blue_date.strftime("%a"). Crea un'altra variabile denominata blue_day e memorizza in essa il giorno del mese utilizzando strftime() dalla variabile blue_date. Crea un'altra variabile denominata blue_month e memorizza in essa il nome del mese, scritto per esteso, utilizzando strftime() dalla variabile blue_date. Inserisci le variabili blue_weekday, blue_day e blue_month nella funzione write() pre-scritta.

  • Sul segno a croce X chiaro, rivolgi lo sguardo verso le casse e crea una variabile denominata blue_hour in cui memorizzare l’ora, ciclo di dodici ore, utilizzando strftime() dalla variabile blue_date. Crea un'altra variabile denominata blue_minute e memorizza in essa il minuto utilizzando strftime() dalla variabile blue_date. Crea un'altra variabile denominata blue_meridian e memorizza in essa il meridiano, AM/PM, utilizzando strftime() dalla variabile blue_date. Inserisci le variabili blue_hour, blue_minute e blue_meridian nella funzione write() pre-scritta.

  • Sul segno a croce X scuro, rivolgi lo sguardo verso le casse e crea una variabile denominata blue_local_date in cui memorizzare il formato della data locale utilizzando strftime() dalla variabile blue_date. Crea un'altra variabile denominata blue_local_time e memorizza in essa il formato dell'orario locale utilizzando strftime() dalla variabile blue_date. Inserisci le variabili blue_local_date, blue_local_time e blue_meridian nella funzione display() pre-scritta.

Infine, ci sposteremo verso il segno a croce X dorato accanto al tappeto verde e procederemo verso i segni a croce X accanto alle casse del tappeto verde nella colonna di destra. Qui continueremo ad aggiungere parti specifiche delle date di imballaggio mancanti sulle casse utilizzando strftime(). Nell'editor sarà presente una data pre-scritta assegnata alla variabile green_date; estrarremo vari dettagli e li utilizzeremo per etichettare le casse.

Per i tappeti verdi:

  • Sul segno a croce X dorato, rivolgi lo sguardo verso le casse e crea una variabile denominata green_day in cui memorizzare il giorno dell'anno utilizzando strftime() dalla variabile green_date. Usa la funzione write() per etichettare le casse con green_day.

  • Sul segno a croce X chiaro, rivolgi lo sguardo verso le casse e crea una variabile denominata green_week in cui memorizzare la settimana dell'anno utilizzando strftime() dalla variabile green_date. Usa la funzione write() per etichettare le casse con green_week.

  • Sul segno a croce X scuro, rivolgi lo sguardo verso le casse e crea una variabile denominata green_timezone in cui memorizzare il fuso orario UTC utilizzando strftime() dalla variabile green_date. Usa la funzione write() per etichettare le casse con green_timezone.

Una volta annotate tutte le etichette sui segni a croce X accanto ai tappeti colorati, il livello sarà completato.

Libro del Codice