Τα υποπρογράμματα είναι κομμάτια κώδικα τα οποία μοιάζουν με μικρά προγράμματα καλούνται από αυτά και ολοκληρώνουν μια συγκεκριμένη διαδικασία.
Τεχνικά, τα υποπρογράμματα διακρίνονται σε δύο μεγάλες κατηγορίες: τις διαδικασίες και τις συναρτήσεις.
Διαδικασίες ονομάζονται τα υποπρογράμματα τα οποία δεν επιστρέφουν καμιά τιμή στο κυρίως πρόγραμμα που τα καλεί.
Συναρτήσεις ονομάζονται τα υποπρογράμματα τα οποία με την ολοκλήρωσή τους επιστρέφουν μια τιμή στο κυρίως πρόγραμμα.
Η διάκριση αυτή δεν πρέπει να μας ξενίζει διότι υπάρχουν περιπτώσεις όπου απαιτούμε την επιστροφή πληροφοριών σχετικά με την εργασία που έπρεπε να ολοκληρωθεί. Αν αυτή ολοκληρώθηκε με επιτυχία ή αν υπήρξαν προβλήματα τα οποία επιβάλλουν την επανάληψή της.
Η Python ανήκει στις γλώσσες προγραμματισμού που δεν κάνει διάκριση σε διαδικασίες και συναρτήσεις ώς προς τον ορισμό τους. Δηλαδή χρησιμοποιεί την ίδια τακτική ορισμού ‘def’ παρά το γεγονός ότι διαθέτει την επιλογή επιστροφής τιμής με την εντολή ‘return’.
Όσο αφορά την Python και για το υπόλοιπο τής συζήτησης θα χρησιμοποιούμε τον όρο συνάρτηση ακόμα κι όταν το υποπρόγραμμα δεν επιστρέφει κάποια τιμή στο κυρίως πρόγραμμα.