QCM Python – Partie 17

Questions pratiques pour testez vos connaissances sur la programmation Python à savoir des structures conditionnelles, des opérations logiques, des boucles, des fonctions, etc. Testez votre connaissance et travaillez sur les questions que vous trompez le plus souvent.
 
 

1. Quelle est la sortie du code suivant?
def f(x, y):
    if(x==0):
        return y
    else:
        return f(x-1,x+y)
print(f(2,5))

A 2

B 4

C 8

D Boucle infinie

C
La ligne f(x-1, x+y) continue à appeler la fonction jusqu’à ce que la condition de base soit satisfaite.
 

2. Laquelle des affirmations suivantes est vraie?

A La méthode __new__() appelle automatiquement la méthode __init__

B La méthode __init__ est définie dans la classe de l’objet

C La méthode __eq(obj) est définie dans la classe de l’objet

D La méthode __repr__() est définie dans la classe de l’objet

C
La méthode __eq(obj) est appelée si une comparaison est effectuée et est définie dans la classe de l’objet.
 

3. Si une fonction contient au moins une instruction « yield », elle devient ______

A un itérateur

B une fonction anonyme

C une fonction génératrice

D Aucune de ces réponses n’est vraie.

C
Une fonction génératrice contient une ou plusieurs instructions yield. Prenons un exemple :

def mygen():
    n = 100
    yield n
    ...

a = mygen()
print(next(a))
 

4. Laquelle des affirmations suivantes est fausse à propos de la récursivité?

A Une récursion infinie peut se produire si le cas de base n’est pas correctement mentionné

B Chaque fonction récursive doit avoir un cas de base

C Une fonction récursive facilite la compréhension du code

D Chaque fonction récursive doit avoir une valeur de retour

D
Une fonction récursive n’a pas besoin de valeur de retour.
 

5. Que se passera-t-il si vous essayez d’ouvrir un fichier qui n’existe pas?

A Un nouveau fichier est créé.

B Rien ne va se passer.

C Une exception est levée.

D Aucune de ces réponses n’est vraie.

C
 
 

6. Quelle fonction surcharge l’opérateur == ?

A __equ__()

B __eq__()

C __isequal__()

D Aucune de ces réponses n’est vraie.

B
 

7. Quelle est la sortie du code suivant?
try:
  # code pouvant générer une erreur
   pass

except (ZeroDivisionError, TypeError):
  print("Message error")

A Affiche « Message error » si une exception survient (peu importe l’exception).

B Affiche « Message error » si aucune exception ne se produit.

C Affiche « Message error » si une exception TypeError ou ZeroDivisionError se produit.

D Affiche « Message error » uniquement si les deux exceptions TypeError et ZeroDivisionError se produisent.

C
 

8. Quelle est la sortie du code suivant?
def f(x):
    if (x > 50):
        return x - 5
    return f(f(x+10));
 
print(f(10))

A 100

B 50

C 25

D 10

B
La partie f(f(x + 10)) du code continue de s’exécuter jusqu’à ce que la valeur de x devienne supérieure à 50, après x-5 est renvoyé et affiché.
 

9. La récursivité et l’itération sont la même approche de programmation.

A Vrai

B Faux

B
En récursion, la fonction s’appelle elle-même jusqu’à ce que la condition de base soit atteinte, tandis que l’itération signifie la répétition du processus, par exemple dans des boucles for.
 

10. Quelle est la sortie du code suivant?
def fun(f, val):
    print(f(val))
fun(max, [1, 2, 3])
fun(min, [1, 2, 3])

A 3 1

B 1 3

C Erreur

D Aucune de ces réponses n’est vraie.

A
Il est possible de transmettre une fonction en tant qu’argument à d’autres fonctions.
 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *