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

Moduli Matematici
Modulo degli Operatori

Obiettivo

Verifica ed assegna i nuovi ordini di materiali da costruzione per l'area agricola utilizzando il modulo operator.

Il piano superiore dell'annesso ospita alcuni uffici che conservano registri dell'inventario e degli ordini dei materiali da costruzione necessari per il nuovo sviluppo del terreno. Esistono diversi strumenti che possono essere impiegati per verificare e calcolare i materiali da utilizzare nella costruzione; oltre al modulo math e statistics, possiamo utilizzare il modulo operator.

Questo modulo, import operator, può essere impiegato per semplificare i calcoli con gli operatori e incapsularli comodamente in funzioni. È possibile usare queste funzioni sia per l'ottimizzazione sia per ottenere valori senza la necessità di creare un oggetto per memorizzare i dati dei calcoli.

  • operators.eq(): Accetta due argomenti, controlla se i due argomenti sono uguali tra loro.
  • operators.lt(): Accetta due argomenti, verifica se il primo argomento è minore del secondo.
  • operators.gt(): Accetta due argomenti, verifica se il primo argomento è maggiore del secondo.
  • operators.floordiv(): Accetta due argomenti, divide il primo argomento per il secondo e applica l'equivalente di math.floor(), arrotondando il risultato per difetto.
  • operators.mod(): Accetta due argomenti, restituisce il resto della divisione tra i due argomenti.
  • operators.contains(): Funzione utilizzata con una lista, accetta due (2) argomenti: il primo è una lista, il secondo è un valore che si desidera verificare se sia presente nella lista. Restituisce: true o false a seconda della presenza o meno del valore.
  • operators.concat(): Accetta due argomenti di tipo lista, combina le due liste insieme usando una singola funzione pulita, e può essere più veloce rispetto ad altri metodi.
  • operators.countOf(): Accetta due argomenti, una lista e un valore, e verifica quante volte quel valore è presente nella lista. Restituisce il numero di occorrenze del valore.

Per iniziare, recati sul simbolo X scuro posto sopra i tappeti rossi, blu e verdi. Esistono sei (6) costanti: red_order, blue_order, green_order, che rappresentano gli ordini per i materiali e: red_req, blue_req, green_req che indicano le quantità richieste per la costruzione.

Al simbolo X scuro posto sul tappeto rosso, usa la funzione read() per verificare la quantità richiesta di materiali. Crea una variabile chiamata red_verification e usa la funzione operator.eq() con le costanti red_order e red_req, in questo modo: red_verification = operator.eq(red_order,red_req). Utilizza la funzione predefinita write() per mostrare il risultato usando la variabile red_verification.

Sui simboli X blu e verde ripeti lo stesso processo: usa la funzione read() e crea le variabili: blue_verification e green_verification. Per la variabile blu, memorizza il valore di operator.lt() utilizzando le costanti blue_order e blue_req per verificare se l'ordine è inferiore a quanto richiesto. Per la variabile verde, memorizza il valore di operator.gt() utilizzando le costanti green_order e green_req per verificare se l'ordine è superiore al materiale richiesto. Utilizza le funzioni predefinite write() con le rispettive funzioni di verifica corrispondenti ai tappeti colorati.

Successivamente, recati sul simbolo X chiaro e, sulla scrivania, usa la funzione read() per controllare gli ordini che sono già stati effettuati e che sono in transito. Nel registro degli ordini troverai i valori di due costanti: main_order e sub_order, oltre al numero di sezioni in cui i materiali devono essere divisi. Dopo aver consultato il registro degli ordini, crea una variabile chiamata allocations e memorizza il valore di operator.floordiv() per dividere il valore di main_order per il numero di sezioni descritto nel registro, in questo modo: allocations = operator.floordiv(main_order, -add sections-). In questo modo l'ordine viene diviso e il risultato viene arrotondato per difetto. Utilizza la funzione predefinita write() con la variabile allocations per visualizzare il risultato.

Recati sul simbolo X dorato e crea una variabile chiamata remainder; memorizza il risultato di operator.mod() che somma le costanti main_order e sub_order per ottenere il resto dei due ordini. Sulla scrivania, utilizza la funzione predefinita write() e passa la variabile remainder per visualizzare il risultato.

Dirigiti poi al simbolo X scuro posto sul tappeto viola, qui verificheremo se la consegna degli strumenti necessari per la costruzione è avvenuta. Abbiamo due costanti lista, delivery_1 e delivery_2; controlleremo se gli strumenti sono stati consegnati nella prima spedizione. Crea una variabile chiamata tools e memorizza il risultato di operator.contains(): come primo argomento inserisci la lista delivery_1 e come secondo argomento la stringa "tools", in questo modo: tools = operator.contains(delivery_1,"tools"). Una volta fatto, sulla scrivania, utilizza la funzione predefinita write() con la variabile tools per visualizzare se gli strumenti siano stati consegnati con successo.

Successivamente, passa alla verifica di tutte le consegne: recati sul simbolo X scuro posto sul tappeto bianco e crea una lista chiamata materials. Usala per memorizzare il valore di operator.concat(), utilizzando le liste delivery_1 e delivery_2 come argomenti. Ciò comporta una rapida unione delle due liste in una singola lista. Sulla scrivania, utilizza la funzione predefinita write() con la variabile materials per annotare tutti i materiali già consegnati per la costruzione.

Infine, recati sul simbolo X scuro posto sul tappeto arancione, dove sono riportati alcuni prerequisiti per l'inizio della costruzione; una delle principali indicazioni è la quantità di legno necessaria all'inizio, espressa in tonnellate. Verifica quanta legna è stata consegnata in tutta la spedizione e annunciala, utilizzando la funzione speak() insieme alla funzione operator.countOf(). Come primo argomento inserisci la lista materials che hai creato, seguito dalla stringa "wood". Questo restituirà il numero di occorrenze di legno presenti nella lista materials. In questo modo si dimostra come le funzioni operator possano essere usate autonomamente senza dover essere memorizzate all'interno di un oggetto, in questo modo: player.speak(operator.countOf(materials,"wood")). Questo completerà il livello.

Libro del Codice