QuizLander
← 所有公开测验

Python — Contrôle de flux & fonctions

作者 Jude · 23/05/2026 · 111 次浏览 · 0 次分享

If/else, boucles, portée, paramètres par défaut, *args/**kwargs, fermetures, expressions ternaires. 20 questions.
20
题目
🇫🇷 Français
语言
中等
难度
开始测验(游客或账户)
分享为图片

测验题目

  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
答题并查看我的分数

评论

登录后即可评论。

加载中…