QuizLander
← All public quizzes

Python — Contrôle de flux & fonctions

by Jude · 23/05/2026 · 110 views · 0 shares

If/else, boucles, portée, paramètres par défaut, *args/**kwargs, fermetures, expressions ternaires. 20 questions.
20
Questions
🇫🇷 Français
Language
Medium
Difficulty
Start the quiz (as a guest or with an account)
Share as image

Questions in this 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
Answer the questions and see my score

Comments

Sign in to comment.

Loading…