At My Fingertips

Quadrati colorati

In questo attività potrai esercitarti a riconoscere similarità e differenze tra frammenti di codice. È il primo passo fondamentale per fare il refactoring (riorganizzazione, ristrutturazione) del codice, al fine di eliminare la duplicazione. La duplicazione è considerata un cattivo approccio di programmazione e va contro i principi di una buona progettazione.

Osserva il seguente frammento di codice che contiene tre differenti funzioni:

def figura1(lato: int) -> Grafica:
    return sovrapponi(rettangolo(lato/4, lato/4, blu),
                      rettangolo(lato, lato, rosso))

def figura2(lato: int) -> Grafica:
    return sovrapponi(rettangolo(lato/4, lato/4, giallo),
                      rettangolo(lato, lato, blu))

def figura3(lato: int) -> Grafica:
    return sovrapponi(rettangolo(lato/4, lato/4, rosso),
                      rettangolo(lato, lato, giallo))

Parametrizzazione

La parametrizzazione consente di rendere un codice più flessibile e riutilizzabile. Prova a implementare la funzione di nome quadrati_colorati che permette di creare i quadrati qui sottostanti, semplicemente modificando il valore dei parametri. Senza riscrivere ogni volta una funzione differente per colori differenti.

quadrati

Suggerimento: prova a dare un nome significativo al parametro della funzione! Per esempio colore_interno, colore_centrale, colore_buco, etc.

Loading...

Per rendere la funzione quadrati_colorati ancora più flessibile, introduci un parametro aggiuntivo che definisce il valore del lato del quadrato interno. In questo modo, la funzione può essere utilizzata per creare una gamma di grafiche ancora più ampia, come rappresentato qui sottostante:

quadrati mix

Loading...

Cosa hai imparato

In questa attività hai imparato un metodo possibile per scrivere codice più pulito senza duplicazioni.


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

Quadrati colorati

Logo of PyTamaro

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

Privacy PolicyPlatform Version b744b47 (Tue, 08 Oct 2024 16:30:14 GMT)