Les fonctions sont l’un des piliers de Python, car elles permettent de structurer un programme de manière claire et professionnelle.
Lorsqu’on apprend à programmer, on comprend vite qu’un script devient difficile à relire dès que la logique se répète ou s’étale sur trop de lignes.
Les fonctions répondent précisément à ce problème : elles organisent le code en blocs cohérents, réutilisables et faciles à tester.
Dans cette série, vous allez consolider les bases essentielles : écrire une définition propre, comprendre le rôle des paramètres, gérer le retour de valeurs, et adopter de bonnes pratiques de lisibilité.
Vous aborderez aussi des notions très utiles en examen comme en projet, telles que la portée des variables, les valeurs par défaut, la documentation interne et les conventions de nommage.
L’objectif est de vous donner des réflexes solides pour passer de petits essais à un code réellement structuré.
Les fonctions sont l’un des piliers de Python, car elles permettent de structurer un programme de manière claire et professionnelle.
Lorsqu’on apprend à programmer, on comprend vite qu’un script devient difficile à relire dès que la logique se répète ou s’étale sur trop de lignes.
Les fonctions répondent précisément à ce problème : elles organisent le code en blocs cohérents, réutilisables et faciles à tester.
Dans cette série, vous allez consolider les bases essentielles : écrire une définition propre, comprendre le rôle des paramètres, gérer le retour de valeurs, et adopter de bonnes pratiques de lisibilité.
Vous aborderez aussi des notions très utiles en examen comme en projet, telles que la portée des variables, les valeurs par défaut, la documentation interne et les conventions de nommage.
L’objectif est de vous donner des réflexes solides pour passer de petits essais à un code réellement structuré.
QCM
1
Corrigé
Quel mot-clé est utilisé pour déclarer une fonction en Python ?
A. function
B. def
C. define
D. func
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
En Python, on utilise le mot-clé 'def' (pour define) pour introduire une nouvelle fonction.
QCM
2
Corrigé
Quel symbole termine obligatoirement la ligne de définition d'une fonction (l'en-tête) ?
A. Le point-virgule (;)
B. L'accolade ({)
C. Le deux-points (:)
D. La parenthèse fermante uniquement
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Comme pour les boucles ou les conditions, le deux-points (:) annonce le début du bloc de code indenté.
QCM
3
Corrigé
Où se placent les paramètres d'une fonction ?
A. Entre les parenthèses après le nom de la fonction
B. Dans le corps de la fonction, après 'return'
C. Avant le mot-clé 'def'
D. Ils sont optionnels et ne se déclarent pas
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Les paramètres sont définis à l'intérieur des parenthèses qui suivent le nom de la fonction dans sa déclaration.
QCM
4
Corrigé
Quel mot-clé permet à une fonction de renvoyer une valeur au programme appelant ?
A. send
B. output
C. give
D. return
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
L'instruction 'return' permet de sortir de la fonction en transmettant un résultat.
QCM
5
Corrigé
Que se passe-t-il si une fonction ne contient pas d'instruction 'return' ?
A. Elle renvoie automatiquement None
B. Elle renvoie une erreur à l'exécution
C. Elle renvoie 0 par défaut
D. Elle ne s'arrête jamais
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
En Python, toute fonction qui se termine sans return renvoie par défaut l'objet spécial 'None'.
QCM
6
Corrigé
Comment appelle-t-on le fait d'écrire une fonction une fois pour l'utiliser plusieurs fois ?
A. L'encapsulation
B. La réutilisabilité
C. La compilation
D. Le typage dynamique
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Les fonctions permettent d'éviter la répétition de code, rendant le programme plus efficace et facile à maintenir.
QCM
7
Corrigé
Quelle est la syntaxe correcte pour appeler une fonction nommée 'ma_fonction' sans argument ?
A. ma_fonction
B. call ma_fonction()
C. ma_fonction()
D. run ma_fonction
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
L'utilisation des parenthèses () est indispensable pour déclencher l'exécution de la fonction.
QCM
8
Corrigé
Quelle est la règle d'indentation pour le corps d'une fonction ?
A. Il ne doit pas être indenté
B. Il doit être indenté d'un niveau par rapport au 'def'
C. Il doit être entouré de balises <body>
D. L'indentation est optionnelle en Python
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
L'indentation définit l'appartenance du bloc de code à la fonction.
QCM
9
Corrigé
Une fonction peut-elle posséder plusieurs instructions 'return' ?
A. Oui, mais une seule sera exécutée
B. Non, c'est interdit
C. Oui, elles s'exécuteront toutes l'une après l'autre
D. Seulement si elles renvoient des nombres
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
On peut multiplier les return (ex: dans un if/else), mais le premier rencontré met fin à la fonction.
QCM
10
Corrigé
Qu'est-ce qu'une 'variable locale' dans une fonction ?
A. Une variable accessible partout dans le programme
B. Une variable qui ne fonctionne que sur un ordinateur local
C. Une variable définie à l'intérieur de la fonction, invisible à l'extérieur
D. Une variable importée d'un autre fichier
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Les variables créées dans une fonction ont une 'portée' limitée à cette fonction.
QCM
11
Corrigé
Comment définit-on une valeur par défaut pour un paramètre ?
A. def f(x : 10):
B. def f(x = 10):
C. def f(x == 10):
D. def f(default x = 10):
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Le signe '=' dans l'en-tête permet de rendre un argument optionnel avec une valeur prédéfinie.
QCM
12
Corrigé
Peut-on appeler une fonction avant de l'avoir définie dans le script ?
A. Oui, Python réorganise le code automatiquement
B. Oui, si le nom est écrit en majuscules
C. Non, cela génère une NameError
D. Seulement si elle est dans une boucle
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
L'interpréteur Python doit avoir lu la définition 'def' avant de pouvoir exécuter l'appel.
QCM
13
Corrigé
Quel est le résultat de l'exécution de : len('Python') ?
A. Python
B. 5
C. str
D. 6
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
len() est une fonction intégrée qui retourne le nombre d'éléments ou de caractères.
QCM
14
Corrigé
Dans 'def addition(a, b):', comment appelle-t-on 'a' et 'b' ?
A. Des paramètres
B. Des arguments
C. Des sorties
D. Des constantes
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
On parle de paramètres lors de la définition, et d'arguments lors de l'appel effectif.
QCM
15
Corrigé
Comment documenter le rôle d'une fonction à l'intérieur de celle-ci (docstring) ?
A. Avec le symbole #
B. Entre des triples guillemets """ ... """
C. Avec la commande doc()
D. En utilisant des commentaires //
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Les docstrings placés juste après le 'def' servent à générer la documentation automatique.
QCM
16
Corrigé
Que se passe-t-il si vous passez trop d'arguments à une fonction ?
A. Python ignore les arguments en trop
B. Une erreur TypeError est levée
C. Les arguments en trop sont stockés dans None
D. La fonction s'exécute deux fois
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Le nombre d'arguments fournis doit correspondre au nombre de paramètres définis (sauf cas spéciaux).
QCM
17
Corrigé
Quelle est l'utilité du mot-clé 'pass' dans une fonction ?
A. Il permet de sauter une erreur
B. Il renvoie la valeur vers la ligne suivante
C. Il sert de remplissage pour une fonction vide sans créer d'erreur
D. Il arrête le programme
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
'pass' est une instruction nulle utilisée quand la syntaxe requiert un bloc de code mais qu'aucune action n'est prévue.
QCM
18
Corrigé
Comment appelle-t-on une fonction qui s'appelle elle-même ?
A. Une fonction circulaire
B. Une fonction miroir
C. Une fonction répétitive
D. Une fonction récursive
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
La récursivité est une technique où une fonction se résout en s'appelant avec des données simplifiées.
QCM
19
Corrigé
Une fonction peut-elle retourner plusieurs valeurs à la fois ?
A. Oui, séparées par des virgules (sous forme de tuple)
B. Non, un seul return est possible par programme
C. Oui, mais seulement des nombres entiers
D. Seulement si on utilise une boucle
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
En écrivant 'return a, b', Python renvoie en réalité un tuple contenant les deux valeurs.
QCM
20
Corrigé
Que signifie 'modularité' dans le contexte des fonctions ?
A. Changer le type des variables
B. Découper un programme complexe en petits morceaux simples et indépendants
C. Utiliser des modules de mémoire vive
D. Crypter le code source
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La modularité facilite la lecture, le test et la maintenance du code.
QCM
21
Corrigé
Comment s'appelle l'espace où une variable est reconnue ?
A. Le périmètre
B. La zone de texte
C. La portée (scope)
D. Le domaine
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
La portée détermine si une variable est locale à une fonction ou globale au script.
QCM
22
Corrigé
Lequel de ces noms de fonction respecte les conventions Python (PEP 8) ?
A. CalculerValeur()
B. calculer_valeur()
C. calculerValeur()
D. CALCULERVALEUR()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La convention 'snake_case' (minuscules et underscores) est recommandée pour les fonctions.
QCM
23
Corrigé
Quel est l'avantage du typage des arguments (ex: def f(n: int)) ?
A. Il empêche le programme de planter
B. Il rend le code plus rapide à l'exécution
C. Il sert d'indication (type hint) pour l'utilisateur et les outils de développement
D. Il est obligatoire depuis Python 3.0
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Les 'type hints' améliorent la clarté mais n'imposent pas de contrainte stricte à l'exécution.
QCM
24
Corrigé
Que se passe-t-il si vous modifiez une variable globale dans une fonction sans précaution ?
A. Python crée une nouvelle variable locale du même nom par défaut
B. La variable globale est modifiée partout
C. Le programme s'arrête immédiatement
D. La variable globale est supprimée
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Pour modifier une variable globale, il faut utiliser le mot-clé 'global' explicitement.
QCM
25
Corrigé
Comment appelle-t-on une fonction définie sans nom (souvent sur une ligne) ?
A. Une fonction anonyme (lambda)
B. Une fonction fantôme
C. Une fonction inline
D. Une fonction rapide
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Les fonctions 'lambda' permettent de créer des fonctions jetables très courtes.
QCM
26
Corrigé
Quel est le rôle du débogage facilité par les fonctions ?
A. Il supprime les virus
B. Il permet de tester chaque bloc de logique séparément
C. Il réécrit le code en langage machine
D. Il empêche l'utilisateur de faire des erreurs de saisie
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
En isolant la logique dans des fonctions, on identifie plus vite quelle partie du code est en faute.
QCM
27
Corrigé
Qu'est-ce qu'une 'méthode' par rapport à une 'fonction' ?
A. C'est la même chose, sans exception
B. Une méthode ne peut pas retourner de valeur
C. Une méthode est une fonction rattachée à un objet (ex: liste.append())
D. Une méthode est une fonction qui ne prend pas d'arguments
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Les méthodes sont les 'actions' que les objets peuvent réaliser.
QCM
28
Corrigé
Que fait l'instruction 'return' placée seule sans valeur ?
A. Elle provoque une erreur
B. Elle renvoie None et arrête la fonction
C. Elle redémarre la fonction au début
D. Elle attend une saisie utilisateur
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Un return vide est utile pour quitter une fonction prématurément sans renvoyer de donnée précise.
QCM
29
Corrigé
Quelle fonction intégrée est utilisée pour convertir une valeur en entier ?
A. toInt()
B. integer()
C. int()
D. convert(int)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
int() est une fonction 'constructeur' utilisée couramment pour le changement de type.
QCM
30
Corrigé
Pourquoi est-il déconseillé d'utiliser trop de variables globales ?
A. Parce que le code devient difficile à suivre et à prédire
B. Parce que cela consomme trop de batterie
C. Parce que Python limite le nombre de variables à 100
D. Parce que les variables globales sont plus lentes que les locales
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Les variables globales créent des dépendances cachées qui compliquent la maintenance du code.
Mots & Définitions
Consultez les définitions des termes importants.
Une fonction est un bloc de code nommé qui réalise une tâche précise. Elle permet de regrouper une logique en un seul endroit, puis de la réutiliser facilement dans le programme.
def sert à déclarer une fonction en Python. Il introduit le nom de la fonction, ses paramètres éventuels et annonce le début de sa définition.
L’en-tête correspond à la première ligne d’une fonction, celle qui contient son nom et ses paramètres. C’est cette ligne qui décrit comment la fonction peut être appelée.
Le deux-points marque le début d’un bloc de code en Python. Après une définition de fonction, il indique que les instructions du corps vont suivre sous forme indentée.
L’indentation est le décalage (espaces) qui délimite les blocs de code en Python. Elle indique clairement quelles lignes appartiennent au corps d’une fonction.
Un paramètre est une variable définie dans l’en-tête d’une fonction. Il représente une information que la fonction attend pour pouvoir travailler.
Un argument est la valeur réelle fournie lors de l’appel d’une fonction. Autrement dit, c’est ce qu’on transmet au moment d’exécuter la fonction.
Appeler une fonction, c’est demander l’exécution de son code. En pratique, on utilise son nom suivi de parenthèses, avec ou sans valeurs selon les paramètres.
return sert à terminer une fonction et à renvoyer un résultat. Elle permet au programme appelant de récupérer une valeur produite par la fonction.
None est une valeur spéciale qui représente l’absence de résultat. Une fonction qui se termine sans renvoyer explicitement de valeur produit généralement None.
Un return utilisé sans valeur sert à quitter une fonction immédiatement. Il arrête l’exécution du corps de la fonction tout en renvoyant None.
La réutilisabilité consiste à écrire une logique une seule fois pour l’utiliser à plusieurs endroits. Les fonctions y contribuent en évitant la duplication et en rendant le code plus simple à maintenir.
La modularité consiste à découper un programme en petites parties indépendantes et cohérentes. Cela facilite la lecture, les tests, la maintenance et le travail en équipe.
Une variable locale est créée à l’intérieur d’une fonction et n’existe que dans ce contexte. Elle ne peut pas être utilisée directement depuis l’extérieur de la fonction.
La portée définit l’endroit où une variable est reconnue et utilisable. Elle permet de distinguer ce qui appartient à une fonction de ce qui est accessible dans tout le script.
Une variable globale est définie en dehors des fonctions et peut être lue depuis différents endroits du programme. Un usage excessif rend souvent le code plus difficile à comprendre et à prévoir.
global indique qu’une variable manipulée dans une fonction doit être celle du niveau global, et non une nouvelle variable locale. Il s’utilise avec prudence, car il crée des dépendances plus fortes dans le code.
Une valeur par défaut rend un paramètre optionnel en lui attribuant une valeur si rien n’est fourni à l’appel. Cela simplifie certaines fonctions en offrant un comportement standard sans obliger à tout préciser.
Une docstring est un texte placé au début d’une fonction pour expliquer son rôle. Elle sert de documentation interne et peut être exploitée par des outils pour générer une aide ou une documentation.
TypeError est une erreur qui peut apparaître quand une fonction reçoit trop d’arguments ou pas assez par rapport à sa définition. Elle aide à repérer rapidement un appel incorrect.
pass est une instruction vide qui ne fait rien. Elle sert de placeholder quand la syntaxe exige un bloc, mais que l’on n’a pas encore de code à exécuter.
La récursivité est une technique où une fonction s’appelle elle-même pour résoudre un problème par étapes. Elle est efficace si chaque appel rapproche clairement d’un cas d’arrêt.
Une lambda est une fonction courte, souvent écrite sur une seule ligne, utilisée pour des besoins ponctuels. Elle est pratique quand on veut une petite transformation sans créer une fonction nommée complète.
Une méthode est une fonction associée à un objet. Elle représente une action que cet objet sait effectuer, comme modifier une liste ou transformer une chaîne.
Le débogage consiste à identifier et corriger les erreurs d’un programme. Les fonctions facilitent ce travail en isolant la logique, ce qui permet de tester chaque partie séparément.
PEP 8 regroupe des recommandations d’écriture pour rendre le code plus lisible. Pour les noms de fonctions, la convention la plus courante utilise des minuscules et des underscores, ce qu’on appelle snake_case.
Les annotations de type indiquent le type attendu pour un paramètre ou un résultat, sans imposer strictement ce type à l’exécution. Elles améliorent la compréhension du code et aident les outils de développement.
Une fonction peut renvoyer plusieurs valeurs en une seule fois en les regroupant. En pratique, Python rassemble ces valeurs dans une structure unique, ce qui permet de les récupérer ensuite proprement.
int() sert à convertir une valeur en entier quand c’est possible. C’est un outil courant pour transformer des données saisies ou des chaînes numériques en valeurs exploitables en calcul.
values() donne accès à l’ensemble des valeurs stockées dans le dictionnaire. Elle sert notamment à analyser ou afficher le contenu sans se concentrer sur les clés.
À propos de ce QCM
Travailler les fonctions en Python, c’est apprendre à raisonner en “blocs de logique” plutôt qu’en suite d’instructions dispersées.
Une fonction se définit avec une signature claire, puis un corps indenté qui contient les étapes du traitement.
Cette séparation aide à rendre le code plus lisible, mais aussi plus fiable, car on peut tester une fonction indépendamment du reste du programme.
Une partie importante consiste à bien distinguer paramètres et arguments.
Les paramètres sont déclarés dans l’en-tête, tandis que les arguments sont les valeurs fournies au moment de l’appel.
Cette distinction devient essentielle dès qu’on ajoute des valeurs par défaut, qui rendent certains paramètres optionnels et donnent un comportement standard à la fonction.
Le retour de valeur, lui, repose sur return : il permet de transmettre un résultat au reste du programme.
Lorsqu’aucun résultat n’est fourni, on retrouve souvent la valeur None, ce qui peut servir de repère pour signaler “pas de donnée” ou “fin anticipée”.
Les QCM mettent aussi l’accent sur des erreurs et situations concrètes : un appel incorrect peut produire une erreur de type, notamment si le nombre d’arguments ne correspond pas à la définition.
Vous verrez également comment la portée (scope) influence la visibilité des variables : une variable locale n’existe que dans la fonction, alors qu’une variable globale peut être accessible plus largement.
Modifier une variable globale depuis une fonction nécessite une attention particulière, car cela peut rendre le comportement du programme moins prévisible.
Enfin, plusieurs notions élargissent la compréhension : les docstrings pour documenter proprement une fonction, les conventions de nommage pour garder un code uniforme, les annotations de type pour clarifier l’intention, sans rigidifier l’exécution.
Vous explorerez aussi des formes particulières comme les fonctions anonymes, la récursivité, et la différence entre une fonction générale et une méthode liée à un objet.
Conclusion
Ces QCM vous entraînent à maîtriser les fonctions comme un véritable outil de structuration, pas seulement comme une syntaxe à mémoriser.
En comprenant comment définir une fonction, transmettre des paramètres, gérer les retours et respecter la portée des variables, vous gagnez en précision et en autonomie.
Les bonnes pratiques abordées — documentation, conventions de nommage, modularité — vous aideront à écrire un code plus lisible et plus simple à maintenir.
En vous exerçant régulièrement, vous consoliderez votre logique et votre capacité à organiser un programme proprement, ce qui fait souvent la différence lors des examens et dans les projets réels.