python:fonction

Fonctions

  • Créer une fonction
def hello():
  print("bonjour !")
  • Appeler une fonction
hello()
>>> bonjour ! 

Instructions

Quand on stocke des valeurs dans des variables, on écrit, ligne après ligne

a = 1
b = 1

On peut aussi faire des calculs avec ces variables, sur une nouvelle ligne

c = a + b

Sur chacune de ces lignes, nous écrivons des instructions. Chaque instruction est une étape dans l'écriture d'un algorithme.

Fonctions

Les fonctions, ce sont des listes d'instructions, comme des séries de calcul par exemple, que l'on regroupe et que l'on stocke dans un nom de fonction. Par exemple :

def addition():
  a = 1
  b = 1 
  c = a + b

Pour écrire une fonction, il faut respecter la syntaxe suivante :

  • (1) Commencer par le mot clé def, pour définition en anglais
  • (2) Donner un nom à la fonction, ici addition
  • (3) Ajouter deux parenthèses () et deux points :
  • (4) Ensuite on écrit la liste des instructions dans le « corps » de la fonction.
    • Chaque ligne commence par un tabulation (touche TAB)
    • Pour terminer l'écriture de la fonction, il faut ajouter une nouvelle ligne, vide, après la dernière instruction.

Usage

Pour l'instant, nous n'avons fait qu'écrire la fonction. Il faut maintenant utiliser la fonction pour qu'elle nous serve à quelque chose. Pour utiliser une fonction, il faut l'appeler par son nom, suivi de deux parenthèses :

addition()

Cette nouvelle ligne est encore une instruction, qui cette fois-ci exécute les instructions contenues dans le corps de la fonction. Ici, la valeur 2 est stockée dans une variable c. Mais tout cela reste invisible. Pour l'instant alors ajoutons une nouvelle fonction pour afficher le résultat :

def addition():
  a = 1
  b = 1 
  c = a + b
  print(c)

La fonction

print()

est une fonction interne de Python qui permet d'afficher des résultats, to print en anglais.

Dans Blender, pour visualiser les « sorties », par exemple avec la fonction print(), il faut ouvrir la console système dans le menu fenêtre :

i.stack.imgur.com_hk3bu.jpg

Arguments

Continuons d'« améliorer » cette fonction d'exemple en comprenant comment ajouter des variables de fonction. Au lieu de créer une fonction qui additionne 1 et 1, nous allons faire une fonction qui additionne deux variables :

def addition(a,b):
  c = a + b
  print(c)

Cette fonction qui « réécrit » une simple fonction d'addition équivalente à la touche + d'une calculette, prend maintenant deux arguments de fonction a et b. Voici maintenant comment nous pouvons utiliser cette fonction :

addition(1,1)

ou

addition(0.5,1.5)

Sorties

On vient d'ajouter des arguments en entrée de fonction. Maintenant, ajoutons des arguments de sortie de fonction avec le mot clé return qui veut juste dire « retourner » en bon français. Pour l'instant, nous pouvions juste afficher le résultat de cette addition avec print(). Mais il est en général plus utile d'écrire des fonctions qui prennent en entrée des arguments, qui sont des données, des valeurs, et qui retourne, en sortie, d'autres valeurs.

def addition(a,b):
  c = a + b
  return c

Maintenant nous pouvons nous servir de cette fonction ainsi :

c = addition(360,5)
print(c)

Quand nous exécutons ce code, la fonction addition() est « appelée » en prenant en compte les valeurs que nous lui donnons (qui sont donc variables en fonction des usages). La fonction effectue pas à pas les instructions qui sont contenues dans la fonction, puis « retourne » le résultat. Ce résultat, enfin, est stocké dans une nouvelle variable, ici nommée c. Pour terminer, nous utilisons la fonction interne print() en « passant comme argument » notre variable c qui contient donc le résultat.

Conversion

Dans l'exemple précédent, si l'on voulait écrire en sortie quelque chose comme :

Le tour du monde en 365 jours

ou

Le tour du monde en 366 jours

il faudrait pouvoir écrire ceci :

c = addition(360,5)
print("Le tour du  monde en " + c + " jours")

Mais ici, il faut réaliser une conversion, car nous voulons travailler avec deux types de variables :

  • c est une variable de type nombre

Mais dans la fonction print(), nous utilisons

  • des mots, comme Le tour du monde en qui est une chaîne de caractères

Il faut donc convertir la valeur de c en chaîne de caractère, qu'en anglais, on appelle string :

  • on utilise la fonction interne str() pour convertir un nombre en mot, c'est-à-dire un « texte ».

Il faut donc écrire :

c = addition(360,5)
d = str(c)
print("Le tour du monde en " + d + " jours")

Ou d'une façon condensée :

print("Le tour du monde en  " + str(addition(360,5)) + " jours")
  • addition() renvoie le nombre 365
  • str() renvoie le texte « 365 »
  • on peut ensuite « additionner » ces trois « bouts de texte »
  • Le tour du monde en , 365, jours