Al escribir programas grandes, puede encontrarse con dos problemas:
1) el programa puede resultar demasiado grande e incomprensible;
2) tendrá que usar la misma pieza de código en diferentes lugares del programa.

Los programadores reales dividen su programa en partes pequeñas: subrutinas (procedimientos). Cada subrutina resuelve una pequeña tarea. 

En términos generales, la descripción de la subrutina es la siguiente:
 
def name():
    comandos

Los comandos de procedimiento están sangrados. Un procedimiento puede contener cualquier construcción dentro de sí mismo.
El nombre del procedimiento (name) puede ser cualquier cosa, con caracteres latinos y números, pero debe comenzar con una letra o guión bajo (_) y no contener espacios.

Si desea ejecutar todos los comandos que contiene un procedimiento, simplemente especifique el nombre de este procedimiento en el programa entre paréntesis. Por ejemplo, para el procedimiento name() descrito anteriormente, la llamada se vería así.

defname():   # Primero, describimos el procedimiento. Esto debe hacerse antes del programa principal
    comandos

nombre()   # En este punto, especificando el nombre del procedimiento, se ejecutarán los comandos descritos en el procedimiento anterior.
abajo
abajo
nombre()   # comandos del procedimiento se ejecutarán aquí nuevamente.


De hecho, al crear un procedimiento, le enseñamos al robot a ejecutar nuevos comandos que no están incluidos en su sistema de comandos.