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...