At My Fingertips
In questa attività costruirai la bandiera tedesca con l'aiuto della libreria PyTamaro.
Cominciamo con il seguente codice di Python. Clicca sul pulsante con la freccia per eseguire il codice:
Quando premi il pulsante, dovresti visualizzare un rettangolo nero abbastanza largo ma non troppo alto.
Guardiamo le istruzioni del programma in alto. La prima è un import statement, che importa tra gli altri i nomi rettangolo, colore_rgb, che sono definiti nella libreria di Python pytamaro.it
.
Le tre righe seguenti definiscono tre variabili:
LARGHEZZA
viene inizializzata con un valore di 500.ALTEZZA
viene impostata a 300 (questo valore è derivato dal valore della larghezza; la bandiera tedesca ha un rapporto tra larghezza e altezza pari a 3:5).COLORI
: una lista viene definita elencando tra parentesi quadre una serie di elementi separati da virgole.La nostra lista, dunque, contiene tre stringhe che rappresentano i colori ufficiali della bandiera tedesca (tonalità di nero, rosso e oro), che vengono trasformate in colori tramite la funzione colore_rgb di PyTamaro. Se vuoi approfondire la rappresentazione dei colori, questa è una delle tante risorse utili.
Ora, dunque, abbiamo una lista di colori e vogliamo creare un rettangolo che corrisponda a ciascun colore. Come fare? Possiamo accedere a ciascuno degli elementi di una lista chiamando il nome della lista seguito da parentesi quadre nelle quali è contenuto l'indice dell'elemento che ci interessa, cioè il numero che corrisponde alla posizione che esso occupa all'interno della lista, cominciando a contare da 0. Nel nostro caso, quindi, COLORI[0] corrisponderà a colore_rgb(0, 0, 0)
, COLORI[1]
a colore_rgb(255, 0, 0)
e COLORI[2]
a colore_rgb(255, 204, 00)
.
La prossima riga, quindi, produce un rettangolo della stessa larghezza della bandiera, alto un terzo della sua altezza e il colore nella posizione 0 della lista (nero). Il rettangolo generato viene assegnato alla variabile rettangolo_nero
.
L'ultima linea chiama la funzione visualizza_grafica, che visualizza sotto il codice il rettangolo da esso generato.
Nel codice seguente, genera altri due rettangoli (rosso e dorato). Poi utilizza la funzione sopra, che pone una grafica sopra un'altra (il primo argomento corrisponde alla grafica da mettere sopra, il secondo quella che resterà sotto).
Per disegnare i tre rettangolo hai scritto tre volte quasi lo stesso codice. Puoi evitare in qualche modo questa duplicazione?
È possibile usare un ciclo for
per scorrere una lista di elementi eseguendo su ciascun elemento un blocco di istruzioni. Nel nostro caso, scorriamo la lista COLORI
: la prima volta attribuiremo alla variabile colore
il valore che si trova nella posizione 0 della lista, vale a dire, nel nostro caso, colore_rgb(0, 0, 0)
. Dopo aver eseguito il blocco di istruzioni per intero utilizzando questo variabile, torneremo all'inizio e attribuiremo alla variabile colore
il valore che si trova nella posizione 1 della lista, vale a dire nel nostro caso colore_rgb(255, 0, 0)
: con questo eseguiremo nuovamente il blocco di istruzioni. Proseguiremo in questo modo fino a quando saremo arrivati alla fine della lista. In questo modo evitiamo di dover riscrivere più volte lo stesso codice (ciò che minimizza anche il rischio di commettere errori).
È possibile usare un ciclo for
per scorrere una lista di elementi eseguendo su ciascun elemento un blocco di istruzioni.
Analizziamo il nostro codice: dapprima viene impostata una grafica vuota, che chiamiamo bandiera
e che servirà come punto di partenza per l'immagine che vogliamo generare.
Successivamente si entra nel ciclo, che viene eseguito scorrendo la lista COLORI
: la prima volta verrà attribuito alla variabile colore
il valore che si trova nella posizione 0 della lista, vale a dire, nel nostro caso, colore_rgb(0, 0, 0)
. Il blocco di istruzioni all'interno del ciclo viene quindi eseguito per intero generando un rettangolo del colore in questione; tale rettangolo viene posto sopra la bandiera
già esistente (che la prima volta è, come si è detto, una grafica vuota). La grafica così generata prende a sua volta il nome di bandiera
, sostituendo quella precedente.
A questo punto si ritorna all'inizio del ciclo: il nome colore
viene ora attribuito al valore che si trova nella posizione 1 della lista, vale a dire colore_rgb(255, 0, 0)
: viene quindi eseguito nuovamente il blocco di istruzioni, generando un rettangolo con il nuovo colore, che viene unito al precedente.
Il ciclo prosegue in questo modo fino a giungere alla fine della lista. In questo modo evitiamo di dover riscrivere più volte lo stesso codice, minimizzando il rischio di commettere errori e permettendoci di generare facilmente una bandiera composta da un numero indeterminato di colori (basta aggiungere alla lista tutti i colori dai quali vogliamo che la bandiera sia composta, senza che ci sia bisogno di modificare ulteriormente il codice).
This activity has been created by Lardelli and is licensed under CC BY-SA 4.0.
It is derived from this activity.
Bandiera tedesca
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version b744b47 (Tue, 08 Oct 2024 16:30:14 GMT)