Les fonctions

J'ai attendu un peu avant de vous présenter les fonctions, vous en avez sûrement déjà aperçu dans mes captures d'écran, et nous y voilà.

Nous avons déjà vu les opérateurs, qui permettent de combiner des objets pour effectuer des opérations dessus.

Les fonctions, c'est la même chose. On les utilise pour effectuer des opérations sur des nombres, des chaînes de caractères, des listes, ou autres.

Mais avant tout, une fonction est une variable : elle a un nom, et c'est là la différence avec un opérateur.

L'autre différence, c'est qu'avec les opérateurs, on peut effectuer des actions uniquement sur deux objets maximum (que l'on appelle des arguments dans le cas des fonctions). Avec, les fonctions, cette limite n'existe plus.

Pour utiliser une fonction, on écrit le nom de la fonction, puis on ouvre des parenthèses, et on met tous les arguments séparés par des virgules. Enfin, on ferme la parenthèse :

nomFonction(argument1, argument2, etc)

Voici des exemples de fonction :

reverse(chaine_de_caractères) : inverse une chaine de caractères

len(objet) : renvoie la longueur d'une liste ou d'une chaine de caractères

nbr(chaine_de_caractères) : transforme une chaine de caractères en nombre

str(nombre) : transforme un nombre en chaine de caractères

sub(chaine, debut, fin) : découpe une chaine de caractères entre début et fin non compris

type(objet) : renvoie le type d'un objet

randint(nombre_entier_positif) : renvoie un nombre aléatoire entre 0 et nombre_entier_positif non compris.

time() : renvoie le nombre de secondes écoulées depuis 1970.

failwith(chaine_de_caractères) : Affiche un message d'erreur et quitte le programme

eval(chaine_de_caractères) : évalue l'expression et renvoie son résultat

input(chaine_de_caractères) : Affiche la chaine de caractères, et demande à l'utilisateur d'entrer du texte. Renvoie ce texte


Comme vous l'avez vu il existe des fonctions qui ne prennent aucun argument.

Je vais maintenant parler des fonctions qui ne renvoient rien, que l'on appelle des procédures.

En voici deux :

print(arg1, arg2, ..., argn) : Affiche tous les arguments de arg1 à argn

help(fonction) : Affiche l'aide sur cette fonction

Comme pous pouvez le voir, ces fonctions affichent des choses, mais ne renvoient rien, contrairement aux fonctions précédentes :

Du moins, elles ne renvoient rien en apparence. En réalité, ces fonctions renvoient précisément quelque chose, et cette chose, c'est None.

D'une manière générale, toute fonction qui ne renvoie rien renvoie en réalité None. Prouvons-le :

Passons maintenant à un autre type de fonction : les méthodes

Quand on envoie un argument à une fonction, la fonction va en réalité manipuler une copie de ces arguments, et ne pourra donc pas modifier l'argument en lui-même.

Or parfois il est utile de pouvoir modifier l'argument directement dans la fonction. Les fonctions qui le font s'appellent des méthodes.

Voici un exemple de méthode : la méthode append. Cette méthode sert à ajouter un élément dans une liste. Exemple :

J'en profite donc pour vous présenter deux autres méthodes, toutes deux s'appliquant sur les listes :

insert(liste, index, élément) : insère l'élement à la place index

remove(liste, index) : supprime l'élément d'index index de la liste



Pour finir sur les fonctions, j'ai commencé en disant qu'une fonction est avant tout une variable. En effet, pour appeler une fonction, on lui met des parenthèses et des arguments. Voyons voir si on l'utilise comme une variable normale :

Avant de nous quitter, je vais vous montrer une petite option de syntaxe pour appeler des fonctions ou des méthodes :

Au lieu d'écrire : fonction(arg1, arg2, ..., argn), vous pourrez désormais écrire : arg1.fonction(arg2, ..., argn)

De même pour les méthodes.

Cette option a été rajoutée essentiellement pour être utilisée avec des méthodes, et il est d'ailleurs recommandé de ne l'utiliser qu'avec des méthodes pour plus de clarté. En effet, par exemple, écrire liste.append(4) est plus explicite que append(liste, 4), et permet tout de suite de savoir que l'on utilise des méthodes.


Et voilà, passons maintenant à la suite, avant de retrouver plus tard de nouveau les fonctions, mais pour en définir nous-même...