At My Fingertips

Rapid Playground

Documentation

Iniziamo!

Fino ad ora hai creato delle grafiche utilizzando un ciclo for per passare in rassegna gli elementi di una lista (in questo caso una lista di colori). Prova ora a confrontarti con una sfida un po' diversa...

Nello specifico proverai a scrivere il codice per costruire la grafica di un abete stilizzato come quello mostrato qui sotto.

abete.png

Lo scopo di questa attività è di apprendere ad utilizzare una variante del ciclo for che non necessita di una lista ma ci permette di ripetere un insieme di istruzioni un numero di volte che possiamo specificare direttamente.

Con questa attività ti eserciterai:

  • a utilizzare una variante del ciclo for che sfrutta la funzione range;
  • a scegliere la variante migliore del ciclo for per un dato scopo;
  • a individuare le parti simili nelle grafiche e nel codice;
  • a riconoscere le modifiche necessarie al codice esistente;
  • a distinguere il codice da eseguire una sola volta da quello da ripetere;
  • a utilizzare i commenti per descrivere il tuo programma.

Confronta

Avrai notato che per l'Abete le parti che si ripetono, ovvero i rami che formano la chioma dell'albero, sono tutte esattamente uguali. Anche il colore è lo stesso!

Non avrebbe quindi senso utilizzare una lista per specificare molte volte lo stesso colore, come fatto in precedenza. Sarebbe meglio avere un modo per indicare al computer quante ripetizioni svolgere: è quello che imparerai a fare con questa attività.

Ma andiamo per piccoli passi, iniziando dai...

Rami

Iniziamo costruendo un triangolo isoscele che rappresenta una fila di rami dell'abete.

Loading...

Il triangolo creato non è però orientato correttamente. Prova a sistemarlo utilizzando la funzione PyTamaro iconruota.

Loading...

Chioma

Il passaggio successivo richiede di unire diversi rami in modo da formare la chioma dell'abete.

Come avrai intuito è a questo punto che entra in gioco il ciclo for!. Anziché però avere una lista di elementi da passare in rassegna, che non avrebbe senso in questo caso dato che i colori dei rami sono tutti uguali, utilizza invece la funzione range() di Python. Un'altro motivo per utilizzare questa variante del ciclo for è che potrei voler ripetere del codice un gran numero di volte: immagina di dover creare una lista con mille volte lo stesso colore...

La funzione range() di Python

La funzione range di Python è molto versatile: per il momento considera solo che grazie a questa funzione il codice del ciclo for verrà eseguito tante volte quante il numero fornito come argomento alla funzione (in realtà la funzione range ritorna dei valori numerici che spesso potremo utilizzare per svolgere compiti ancora più complessi). In pratica se usiamo range(5) il codice del ciclo for verrà eseguito 5 volte; se usiamo range(100) il codice del ciclo for verrà eseguito 100 volte; se usiamo range(16) il codice del ciclo for verrà eseguito 16 volte e così via.

Prova ad utilizzare un ciclo for per svolgere questo lavoro: completa le parti mancanti.

Nota: per il momento utilizziamo un trattino basso, _ dopo la parola for, come nome per i valori numerici ritornati dalla funzione range, dato che qui non ci servono. In futuro potremo però aver bisogno di essi e quindi sarà importante utilizzare un nome sensato al posto del trattino.

Loading...

Tronco e albero

Non ci resta ora che creare ed aggiungere il tronco per completare l'abete.

Loading...

Metti tutto insieme

Quest'ultimo passaggio richiede che tu unisca tutto il codice per ottenere sempre l'abete, ma evitando di svolgere ad esempio molti import identici.

Loading...

Svolgendo questa attività potresti aver notato che non era indispensabile utilizzare PyTamaro icongrafica_vuota per costruire la chioma, ma che si poteva semplicemente partire dal tronco, mettendoci poi sopra le varie file di rami. Entrambe le soluzioni sono in ogni caso corrette.

Cosa hai imparato

In questa attività ti sei esercitato a utilizzare il ciclo for per creare un abete con quattro file di rami, sfruttando una variante di questo costrutto che necessita della funzione range.

Hai quindi esercitato la capacità di individuare le parti simili nelle grafiche e nel codice, riconoscendo le modifiche necessarie da apportare per ottenere il risultato richiesto.

Hai potuto inoltre realizzare una grafica dove alcune parti sono ripetute mentre altre no.

Ti sei infine esercitato nella scrittura dei commenti che spiegano la funzione del tuo codice.


This activity has been created by Sulmoni and is licensed under CC BY-SA 4.0.

Ciclo for - Abete

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version f577e32 (Mon, 15 Jul 2024 09:55:47 GMT)