Büyük programlar yazarken iki sorunla karşılaşabilirsiniz:
1) program çok büyük ve anlaşılmaz olabilir;
2) Programın farklı yerlerinde aynı kod parçasını kullanmak zorunda kalacaksınız.

Gerçek programcılar programlarını küçük parçalara, alt programlara (prosedürler) bölerler. Her alt program küçük bir görevi çözer. 

Genel anlamda, alt programın açıklaması şu şekildedir:
 
def name():
    komutlar

Prosedür komutları girintilidir. Bir prosedür kendi içinde herhangi bir yapı içerebilir.
Prosedürün adı (name), Latin karakterlerinden ve sayılarından oluşan herhangi bir şey olabilir, ancak bir harf veya alt çizgi (_) ile başlamalı ve boşluk içermemelidir.

Bir prosedürün içerdiği tüm komutları yürütmek istiyorsanız, programda bu prosedürün adını parantez içinde belirtmeniz yeterlidir. Örneğin, yukarıda açıklanan name() prosedürü için çağrı şöyle görünür.

defname():   # İlk önce prosedürü açıklıyoruz. Bu, ana programdan önce yapılmalıdır
    komutlar

ad()   # Bu noktada prosedürün adını belirterek, yukarıdaki prosedürde açıklanan komutlar çalıştırılacaktır.
aşağı
aşağı
ad()   Yordamdaki # komut burada yeniden yürütülecek.


Aslında, bir prosedür oluşturarak, robota kendi komut sisteminde yer almayan yeni komutları yürütmesini öğretiyoruz!