QCM : Fonctions en Python — 18 questions

Questions et réponses du QCM

1. Quelle description caractérise le mieux une fonction en programmation ?

Une variable particulière, utilisée pour mémoriser une instruction pendant l’exécution
Une condition logique nommée, chargée de choisir entre plusieurs branches du programme
Un fichier de données nommé, destiné à conserver des résultats entre deux exécutions
Une suite d’instructions nommée, pouvant recevoir des arguments et renvoyer des valeurs

Une suite d’instructions nommée, pouvant recevoir des arguments et renvoyer des valeurs

Explication

Une fonction encapsule des instructions sous un nom et peut accepter des arguments, renvoyer des valeurs ou produire des effets de bord. Une variable mémorise une donnée, mais elle ne désigne pas par définition une suite d’instructions exécutable.

2. Une même opération doit être corrigée à plusieurs endroits dans un programme parce que son code a été recopié. Quelle pratique aurait évité cette situation ?

Ajouter davantage de commentaires autour du code recopié
Remplacer l’opération par plusieurs variables intermédiaires
Répartir l’opération dans différentes conditions du programme
Regrouper l’opération dans une fonction réutilisable

Regrouper l’opération dans une fonction réutilisable

Explication

La factorisation dans une fonction évite la duplication et permet de modifier le traitement à un seul endroit, tout en facilitant la lisibilité et les tests. Les commentaires expliquent le code, mais ne suppriment pas les corrections répétées imposées par sa copie.

3. Quelle distinction oppose correctement deux grands types de fonctions ?

Certaines sont écrites avec des paramètres, tandis que d’autres sont nécessairement dépourvues de paramètres
Certaines s’exécutent dans une bibliothèque, tandis que d’autres s’exécutent nécessairement dans le système
Certaines produisent un affichage, tandis que d’autres ne peuvent avoir aucun effet observable
Certaines renvoient des valeurs calculées, tandis que d’autres réalisent une action sans valeur renvoyée

Certaines renvoient des valeurs calculées, tandis que d’autres réalisent une action sans valeur renvoyée

Explication

Une fonction peut calculer puis renvoyer une ou plusieurs valeurs, ou réaliser une action comme afficher, dessiner ou modifier l’environnement sans renvoyer de valeur. La présence de paramètres et le lieu d’exécution ne définissent pas cette distinction, et une fonction sans valeur renvoyée peut tout de même avoir un effet observable.

4. Une fonction affiche un message à l’écran et modifie un élément de l’environnement, sans fournir de résultat au programme appelant. De quel type de fonction s’agit-il ?

D’une fonction de stockage conservant automatiquement l’état modifié
D’une fonction de calcul renvoyant implicitement le message affiché
D’une fonction d’action sans valeur renvoyée
D’une fonction de comparaison produisant une valeur logique

D’une fonction d’action sans valeur renvoyée

Explication

Afficher un message et modifier l’environnement sont des actions qu’une fonction peut effectuer sans renvoyer de valeur. Le fait qu’un effet soit visible ne transforme pas automatiquement l’action en résultat retourné au programme appelant.

5. Après l’instruction `import math`, comment appelle-t-on généralement une fonction mathématique fournie par ce module ?

En utilisant le préfixe `random`, comme dans `random.sqrt(9)`
En utilisant le préfixe `math`, comme dans `math.sqrt(9)`
En écrivant le nom du fichier après une virgule, comme dans `sqrt, math(9)`
En plaçant le nom de la fonction entre crochets, comme dans `math[sqrt(9)]`

En utilisant le préfixe `math`, comme dans `math.sqrt(9)`

Explication

L’instruction `import math` permet généralement d’appeler une fonction avec le préfixe du module, par exemple `math.sqrt(9)`. L’appel direct sans préfixe correspond plutôt à une importation explicite telle que `from math import sqrt`.

6. Quel module Python associer correctement à son usage principal ?

`turtle` pour réaliser des dessins
`Tkinter` pour générer des nombres pseudo-aléatoires
`random` pour construire des interfaces graphiques
`os` pour calculer les fonctions mathématiques courantes

`turtle` pour réaliser des dessins

Explication

Le module `turtle` est destiné au dessin, tandis que `random` produit des nombres pseudo-aléatoires, `os` manipule le système de fichiers et `Tkinter` sert aux interfaces graphiques. Les associations proposées inversent donc les rôles de plusieurs modules.

7. Quelle structure correspond à la définition correcte d’une fonction Python ?

calculer(valeur) : suivie d’instructions indentées et, au besoin, de return
def calculer(valeur) suivie d’instructions non indentées et, au besoin, de return
def calculer(valeur) : suivie d’instructions indentées et, au besoin, de return
return calculer(valeur) : suivie d’instructions indentées et, au besoin, de def

def calculer(valeur) : suivie d’instructions indentées et, au besoin, de return

Explication

Le mot-clé def introduit le nom et les paramètres de la fonction, puis le bloc d’instructions doit être indenté; une instruction return peut être ajoutée. L’écriture avec des parenthèses correspond à un appel, qui exécute la fonction au lieu de la définir.

8. Quelle affirmation décrit correctement les possibilités lors de la définition d’une fonction Python ?

Elle doit avoir au moins un paramètre et produire une valeur avec return.
Elle peut être sans paramètre, mais doit contenir une instruction return.
Elle peut avoir zéro, un ou plusieurs paramètres, avec ou sans instruction return.
Elle doit avoir plusieurs paramètres et contenir une instruction return.

Elle peut avoir zéro, un ou plusieurs paramètres, avec ou sans instruction return.

Explication

Une fonction peut être définie sans paramètre ou avec plusieurs paramètres, et elle peut comporter ou non une instruction return. L’absence de valeur renvoyée ne constitue donc pas une erreur de définition.

9. À quel moment les instructions d’une fonction Python sont-elles exécutées ?

Dès que le programme rencontre la définition de la fonction, avant toute autre instruction.
Après la fin du programme, lorsque Python parcourt les fonctions définies.
Lorsqu’un appel à la fonction est effectué depuis un programme, une autre fonction ou l’interpréteur.
Lorsque le nom de la fonction est écrit dans un commentaire du programme.

Lorsqu’un appel à la fonction est effectué depuis un programme, une autre fonction ou l’interpréteur.

Explication

La définition prépare la fonction, tandis que son appel déclenche l’exécution de ses instructions. Une fonction peut être appelée par le programme principal, par une autre fonction ou directement dans l’interpréteur.

10. Que doit respecter un appel de fonction lorsqu’il transmet des arguments à des paramètres ?

Les arguments sont évalués après l’exécution et leur nombre dépend du résultat renvoyé.
Les arguments sont transmis avant leur évaluation et doivent être écrits dans la définition.
Les paramètres sont évalués après l’appel et le nombre d’arguments peut varier sans règle.
Les arguments sont évalués avant leur transmission et leur nombre correspond aux paramètres attendus.

Les arguments sont évalués avant leur transmission et leur nombre correspond aux paramètres attendus.

Explication

Python évalue chaque argument avant de le transmettre au paramètre correspondant, et l’appel doit fournir le nombre attendu d’arguments. La définition ne remplace donc pas l’évaluation préalable des expressions transmises.

11. Dans la fonction « def doubler(nombre) : », puis lors de l’appel « doubler(6) », quels termes désignent respectivement nombre et 6 ?

nombre est un paramètre et 6 est un argument.
nombre est une valeur renvoyée et 6 est un paramètre.
nombre est un argument et 6 est un paramètre.
nombre est une fonction appelée et 6 est une définition.

nombre est un paramètre et 6 est un argument.

Explication

Le paramètre est la variable écrite dans la définition, ici nombre, tandis que l’argument est la valeur fournie pendant l’appel, ici 6. Confondre leur rôle revient à attribuer à l’appel un élément qui appartient à la définition.

12. Laquelle de ces expressions peut être fournie comme argument lors de l’appel d’une fonction Python ?

Une parenthèse isolée, une indentation, une annotation ou un mot-clé incomplet.
Une instruction d’indentation, un commentaire, une définition ou un nom de module.
Une constante, une variable, une opération évaluée ou le résultat d’une autre fonction.
Un paramètre non déclaré, un bloc de code, une condition ou une ligne vide.

Une constante, une variable, une opération évaluée ou le résultat d’une autre fonction.

Explication

Un argument peut être une constante, une variable, une opération dont le résultat est calculé avant l’appel ou une valeur renvoyée par une autre fonction. Les autres propositions décrivent des éléments de syntaxe ou de structure qui ne constituent pas des valeurs d’argument.

13. Quelle affirmation distingue correctement la valeur renvoyée par une fonction de l’affichage produit par `print` ?

`return` affiche une valeur, tandis que `print` la transmet au programme appelant
`return` modifie l’environnement, tandis que `print` produit une valeur affectable
`return` transmet une valeur réutilisable, tandis que `print` affiche un résultat sans le renvoyer
`return` et `print` transmettent tous deux une valeur réutilisable à l’appelant

`return` transmet une valeur réutilisable, tandis que `print` affiche un résultat sans le renvoyer

Explication

Une instruction `return` transmet une valeur au programme appelant, qui peut ensuite l’affecter ou l’utiliser dans un calcul. À l’inverse, `print` affiche un résultat mais ne fournit pas cette valeur comme résultat exploitable de la fonction.

14. Que renvoie implicitement une fonction Python qui exécute ses instructions sans contenir d’instruction `return` ?

La valeur zéro, utilisée comme résultat par défaut d’une fonction vide
Une erreur d’exécution signalant l’absence d’un résultat explicite
La valeur spéciale `None`, indiquant qu’aucune valeur n’a été renvoyée
La dernière valeur affichée, conservée automatiquement par la fonction

La valeur spéciale `None`, indiquant qu’aucune valeur n’a été renvoyée

Explication

En l’absence de `return`, Python renvoie implicitement `None`, ce qui signifie qu’aucune valeur n’a été renvoyée. La valeur zéro n’est pas le résultat par défaut d’une fonction qui ne contient pas de retour.

15. Dans quel environnement une variable locale créée à l’intérieur d’une fonction est-elle accessible ?

Dans le programme principal dès que la fonction a été appelée
Dans toutes les fonctions du programme qui portent le même nom
Dans les modules importés qui exécutent cette même fonction
Dans l’environnement de la fonction où elle a été créée

Dans l’environnement de la fonction où elle a été créée

Explication

Une variable locale appartient à l’environnement de la fonction qui la crée ou la modifie. Son nom n’est donc pas automatiquement accessible depuis le programme principal ou depuis d’autres fonctions.

16. Une variable simple définie dans le programme principal doit-elle être déclarée `global` pour être lue dans une fonction, et quand cette déclaration devient-elle nécessaire ?

Elle reste inaccessible dans la fonction, même après une déclaration `global`
Elle peut être lue sans déclaration, mais `global` est nécessaire pour la modifier
Elle peut être modifiée sans déclaration, mais `global` est requis pour la lire
Elle doit être déclarée `global` avant toute lecture effectuée dans la fonction

Elle peut être lue sans déclaration, mais `global` est nécessaire pour la modifier

Explication

Une fonction peut lire une variable globale définie dans le programme principal sans déclaration particulière. En revanche, sa modification directe dans cette fonction nécessite l’utilisation de `global`.

17. Quelle distance la fonction `distance(1, 2, 1, 5)` calcule-t-elle entre les deux points indiqués ?

4.04.0
5.05.0
3.03.0
6.06.0

$$3.0$$

Explication

La formule donne d=(1−1)2+(5−2)2=9=3d=\sqrt{(1-1)^2+(5-2)^2}=\sqrt{9}=3, et la fonction renvoie cette valeur sous forme de `float`. Le déplacement horizontal est nul, tandis que le déplacement vertical vaut trois unités.

18. Quelle démarche est la plus appropriée pour programmer une fonction fiable ?

Tester un seul appel, définir les paramètres, puis rédiger les instructions sans préciser le comportement attendu
Définir ses paramètres, rédiger ses instructions, décider du retour ou des effets de bord, puis tester plusieurs appels
Rédiger les instructions, choisir les paramètres après les tests, puis remplacer le retour par des effets de bord
Choisir les effets de bord, exécuter les appels, puis déduire les paramètres à partir des résultats obtenus

Définir ses paramètres, rédiger ses instructions, décider du retour ou des effets de bord, puis tester plusieurs appels

Explication

La programmation d’une fonction fiable commence par l’identification des paramètres, se poursuit par l’écriture des instructions et le choix entre retour et effets de bord, puis s’achève par plusieurs tests adaptés. Tester un seul appel avant de clarifier les paramètres et le comportement ne permet pas de vérifier correctement la fonction.

Révisez avec les flashcards

Mémorisez les réponses avec 36 flashcards sur Fonctions en Python.

Qu'est-ce qu'une fonction en programmation ?

Une suite d'instructions encapsulées dans une boîte identifiée par un nom.

Que peut recevoir une fonction en entrée ?

Des arguments éventuels.

Que peut produire une fonction en sortie ?

Des valeurs éventuelles.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Fonctions en Python.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM