Quando scrivi programmi di grandi dimensioni, potresti incontrare due problemi:
1) il programma potrebbe risultare troppo grande e incomprensibile;
2) dovrai utilizzare lo stesso pezzo di codice in punti diversi del programma.

I veri programmatori suddividono il loro programma in piccoli pezzi: subroutine (procedure). Ogni subroutine risolve un piccolo compito. 

In termini generali, la descrizione della subroutine è la seguente:
 
def name():
    comandi

I comandi di procedura sono rientrati. Una procedura può contenere qualsiasi costrutto al suo interno.
Il nome della procedura (name) può essere qualsiasi cosa, composto da caratteri latini e numeri, ma deve iniziare con una lettera o un trattino basso (_) e non contenere uno spazio.

Se si desidera eseguire tutti i comandi contenuti in una procedura, è sufficiente specificare il nome di questa procedura nel programma tra parentesi. Ad esempio, per la procedura name() descritta sopra, la chiamata sarebbe simile a questa.

defname():   # Innanzitutto, descriviamo la procedura. Questo deve essere fatto prima del programma principale
    comandi

nome()   # A questo punto, specificando il nome della procedura, verranno eseguiti i comandi descritti nella procedura sopra.
giù
giù
nome()   # comandi della procedura verranno eseguiti di nuovo qui.


Infatti, creando una procedura, insegniamo al robot ad eseguire nuovi comandi che non sono inclusi nel suo sistema di comando!