Vidéo 35 : Paramètres, arguments

\(\newcommand{\ds}{\displaystyle}\) \(\newcommand{\Frac}{\ds\frac}\) \(\renewcommand{\r}{\mathbb{ R}}\) \(\newcommand{\C}{\mathbb{ C}}\) \(\newcommand{\n}{\mathbb{ N}}\) \(\newcommand{\z}{\mathbb{ Z}}\) \(\newcommand{\Q}{\mathbb{ Q}}\) \(\newcommand{\N}{\mathbb{ N}}\) \(\newcommand{\n}{\mathbb{ N}}\) \(\newcommand{\ol}{\overline}\) \(\newcommand{\abs}[1]{\left| \,{#1} \right|}\) \(\newcommand{\pv}{\;;\;}\) \(\newcommand{\ens}[1]{\left\{ {#1} \right\}}\) \(\newcommand{\mens}[1]{\setminus\left\{ {#1} \right\}}\) \(\newcommand{\Par}[1]{\left({#1}\right)}\)

Vidéo 35 : Paramètres, arguments

Fonction sans paramètre

Il est possible définir des fonctions n’admettant pas de paramètre, comme la fonction f ci-dessous (ligne 1) :

1
2
3
4
def f():
    return 42

print(f())
5
42

Pour appeler la fonction f, on écrit (ligne 4) juste f() autrement dit, on place juste une paire de parenthèses vides.

En pratique, les fonctions sans paramètre sont beaucoup moins fréquentes que leurs analogues avec paramètres. Mais les fonctions sans paramètre servent parfois à regrouper des instructions dans une fonction pour les appeler en une seule fois, ce qui permet d’avoir un code plus structuré.

Un cas typique serait une fonction utilisée pour tester d’autres fonctions :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
def f(a, b):
    m = (a + b)/2
    ok = (m >= 10)
    return ok


def tests():
    resultat = f(14, 8)
    print(resultat)
    resultat = f(0, 20)
    print(resultat)
    resultat = f(5, 6)
    print(resultat)

tests()
16
17
18
True
True
False
  • La fonction tests n’utilise aucune donnée et donc n’admet aucun paramètre.
  • La fonction tests n’admettant aucun paramètre, elle n’admet non plus aucun argument quand elle est appelée.

L’intérêt est qu’il suffit de retirer l’appel à tests pour désactiver le code qui est dans la fonction tests, ce qui n’était pas faisable facilement si le code était placé hors d’une fonction.

Autre exemple

Soit à coder une fonction lancer_un_de simulant le jet d’un dé à 6 faces : la fonction renvoie un entier au hasard entre 1 et 6. Une telle fonction ne dépend de rien et donc sera définie sans paramètre, plus précisément :

1
2
3
4
5
6
7
from random import randrange

def lancer_un_de():
   return randrange(1,7)

jet=lancer_un_de()
print(jet)
8
5
  • Lignes 3-4 : fonction sans paramètre.
  • Ligne 6 : appel sans argument de la fonction.