QuizLander
← Tous les quiz publics

Python — Contrôle de flux & fonctions

par Jude · 23/05/2026 · 107 vues · 0 partages

If/else, boucles, portée, paramètres par défaut, *args/**kwargs, fermetures, expressions ternaires. 20 questions.
20
Questions
🇫🇷 Français
Langue
Moyen
Difficulté
Démarrer le quiz (invité ou compte)
Partager comme image

Les questions du quiz

  1. 1. Quel est le piège dans cette définition ?
    def add_item(item, bag=[]):
        bag.append(item)
        return bag
    
    print(add_item(1))
    print(add_item(2))
    1. Rien, elle affiche [1] puis [2]
    2. Argument mutable par défaut : [1] puis [1, 2]
    3. Erreur de syntaxe
    4. Erreur d'exécution au deuxième appel
  2. 2. Que produit ce code ?
    for i in range(3):
        if i == 1:
            continue
        print(i, end=' ')
    1. 0 1 2
    2. 0 2
    3. 1 2
    4. 0 1
  3. 3. Que signifie *args dans une signature de fonction ?
    1. Un seul argument obligatoire
    2. Un nombre variable d'arguments positionnels regroupés en tuple
    3. Un dictionnaire d'arguments nommés
    4. Une syntaxe interdite
  4. 4. Quel sera l'affichage ?
    x = 10
    def f():
        x = 20
        print(x, end=' ')
    f()
    print(x)
    1. 10 10
    2. 20 10
    3. 20 20
    4. 10 20
  5. 5. Quelle clause else est vraie ?
    1. Le else d'un for s'exécute si la boucle finit sans break
    2. Le else d'un try s'exécute si une exception est levée
    3. while ne peut pas avoir de else
    4. Le else d'un for ne s'exécute jamais
  6. 6. Que renvoie (lambda x, y=10: x + y)(5) ?
    1. 5
    2. 10
    3. 15
    4. TypeError
  7. 7. Quel mot-clé permet de modifier une variable du module dans une fonction ?
    1. nonlocal
    2. global
    3. static
    4. extern
  8. 8. Quelle est la valeur de r ?
    def f(*args, **kwargs):
        return len(args), len(kwargs)
    
    r = f(1, 2, 3, a=1, b=2)
    print(r)
    1. (3, 2)
    2. (5, 0)
    3. (2, 3)
    4. (0, 5)
  9. 9. Quelle expression est équivalente à ce bloc ?
    if x > 0:
        sign = 1
    else:
        sign = -1
    1. sign = 1 if x > 0 else -1
    2. sign = (x > 0) ? 1 : -1
    3. sign = 1 when x > 0 else -1
    4. sign = if x > 0 1 else -1
  10. 10. Que fait l'astérisque dans def f(a, b, *, c) ?
    1. Rend c facultatif
    2. Force c à être passé comme argument nommé
    3. Capture les positionnels supplémentaires
    4. Erreur de syntaxe
  11. 11. Que produit ce code ?
    fns = [lambda: i for i in range(3)]
    print([f() for f in fns])
    1. [0, 1, 2]
    2. [2, 2, 2]
    3. [3, 3, 3]
    4. Erreur
  12. 12. Que vaut r ?
    def power(base, exp=2, /, *, modulo=None):
        r = base ** exp
        return r if modulo is None else r % modulo
    
    r = power(3, 5, modulo=7)
    print(r)
    1. 5
    2. 243
    3. 5 (243 mod 7)
    4. TypeError
  13. 13. Quelle est la portée résolue par LEGB ?
    1. Local, Enclosing, Global, Built-in
    2. Library, Extension, Global, Builtin
    3. Logical, Encapsulated, Generic, Boxed
    4. Aucun, Python n'a pas de portée
  14. 14. Que fait ce code ?
    def f():
        try:
            return 1
        finally:
            print("clean")
    
    print(f())
    1. Affiche 1 seulement
    2. Affiche "clean" puis 1
    3. Affiche "clean" et n'imprime jamais 1
    4. Erreur
  15. 15. Quel est le résultat de ce match (Python 3.10+) ?
    def describe(pt):
        match pt:
            case (0, 0):           return "origin"
            case (x, 0):           return f"x={x}"
            case (0, y):           return f"y={y}"
            case (x, y):           return f"({x},{y})"
    print(describe((0, 4)))
    1. origin
    2. x=0
    3. y=4
    4. (0,4)
  16. 16. Que produit ce code ?
    def outer():
        x = 1
        def inner():
            nonlocal x
            x += 1
            return x
        return inner
    
    i = outer()
    print(i(), i())
    1. 2 2
    2. 2 3
    3. 1 2
    4. Erreur
  17. 17. Quel est le résultat de ce code ?
    for i in range(5):
        if i == 3:
            break
    else:
        print("done")
    print(i)
    1. done puis 3
    2. 3 seulement
    3. done puis 4
    4. Erreur
  18. 18. Quel est le retour de print ?
    1. La chaîne imprimée
    2. Le nombre de caractères
    3. None
    4. 0
  19. 19. Que produit ce code ?
    def f(a, b, /):
        return a - b
    
    print(f(b=2, a=5))
    1. 3
    2. -3
    3. TypeError
    4. None
  20. 20. Quelle est la sortie ?
    def f():
        yield from range(2)
        yield 99
    
    print(list(f()))
    1. [0, 1, 99]
    2. [range(0, 2), 99]
    3. [99]
    4. Erreur
Répondre aux questions et voir mon score

Commentaires

Connecte-toi pour commenter.

Chargement…