Nous venons de voir comment les fonctions permettent d'éviter de répéter exactement les mêmes instructions à plusieurs endroits d'un programme. Il arrive aussi souvent que l'on répète les mêmes instructions, mais avec de légères différences d'une version à l'autre. Supposons par exemple que nous souhaitions afficher une ligne d'étoiles au début et une ligne de tirets un peu plus loin. Les instructions utilisées dans les deux cas seront identiques à un caractère près.
On va donc rendre notre fonction paramétrable avec un argument caractere (et nous changeons son nom) :
def ligneÉtoiles(caractère): for iCol in range(40): print(caractère, end = "") print()
On place donc le paramètre nommé entre les parenthèses après le nom de la fonction.
Au sein de cette fonction, l'identifiant caractere représente une variable, qui a été initialisée à la valeur indiquée lors de l'appel.
On peut l'utiliser comme une variable donc également modifier sa valeur au cours de la fonction. Cela n'est cependant pas conseillé : en général, les arguments d'une fonction sont simplement vus comme des paramètres qui vont influencer leur déroulement, et pas comme des boîtes destinées à être modifiées. Le faire est ainsi une pratique inhabituelle qui nuit à la compréhension.
Pour appeler la fonction, on place la valeur entre les parenthèses :
ligneCaractères("*")