Disegnare con Python e Turtle - Lezione 02

Vediamo in questa nuova lezione tre nuovi concetti. Il primo è come scrivere non nel tab degli output ma direttamente nella nostra schermata della tartaruga; il secondo è il concetto di variabile vettore, il terzo come realizzare una struttura ciclica per ripetere più volte gli stessi comandi.

Il primo comando di questo articolo è il "write". Se abbiamo imparato nelle precedenti lezioni come usare il comando print per stampare messaggi di errore o comunicare con l'utente, adesso vediamo direttamente nel tab dove disegniamo i percorsi della nostra tartaruga. E' semplicissimo, basta provare il seguente codice ad esempio sul nostro abituale sito Repl.it

import turtle

pina = turtle.Turtle()

pina.write("pippo")

Sperimentato il testo, vediamo il secondo concetto della lezione. Abbiamo imparato cosa sono le variabili e che, come contenitori possiamo inserisci un valore numerico, o un testo o una tartaruga con tutti i suoi comandi. Esistono variabili un po' più complesse in cui di valori possiamo inerirne più di uno. In informatica vengono definiti vettori ma se il nome vi sta complesso da ricordare possiamo indicarlo come una lista di elementi. Ogni elemento del nostro vettore ha un indice, ovvero una posizione che va parte da 1 ed arriva fino all'ultimo elemento. Scriviamo il seguente codice:

import turtle

pina = turtle.Turtle()

contenitore = ["a","b","c","d"]

La variabile contenitore di lettere dove in posizione 0 c'è la lettera a, in posizione 1 la lettera b e così via. 

Come facciamo a stampare a schermo tutte le lettere del nostro vettore chiamato contenitore? 

In realtà è molto semplice se non usiamo un ciclo, ovvero scorriamo tutto il nostro contenitore stampiamo una lettera prelevandola dal vettore e magari ci spostiamo un p' per ricominciare a stampare la lettera successiva. Basta riscrivere più volte il medesimo codice variando solo l'indice della lettera da prelevare. Si scriva il seguente codice:

import turtle

pina = turtle.Turtle()

pina.penup()
contenitore = ["a","b","c","d"]

pina.write(contenitore[0])
pina.forward(30)

pina.write(contenitore[1])
pina.forward(30)

pina.write(contenitore[2])
pina.forward(30)

Immaginate ora che le lettere non siano 4 ma molte di più, anche 100. Sarebbe folle riscrivere 100 volte le medesime istruzioni. Automatizziamo il tutto usando un ciclo che ripete le stesse righe di codice in modo più semplice ed intuitivo. 

import turtle

pina = turtle.Turtle()

pina.penup()
contenitore = ["a","b","c","d"]
for i in range(3):
  pina.write(contenitore[i])
  pina.forward(30)

Il for è l'istruzione per eseguire ciclicamente più comandi. i è una variabile che scorre come se fosse un indice che nel nostro caso va da 0 a 3-1, da 0 a 2 con 3 escluso per capirci, ovvero i primi tre elementi del contenitore. Le istruzioni annidate nel ciclo mirano proprio a prelevare un valore in base all'indice, scriverlo e quindi spostare il cursore per non far accavallare le lettere. Il comando penup fa si che non ci sia la linea  sovrascritta alla nostre lettere. 

Al lettore come modifica il codice per stampare tutte le 4 lettere del contenitore o aggiungere tutte le lettere dell'alfabeto nel contenitore e stamparle nello stesso modo con l'opportuno indice/range. Non è un mistero che se nel vettore inseriamo parole, possiamo stampare anche quelle nello stesso modo.


Stampa