Title: Niveau 1
Course: Le web (2)

Q: Quelle est la sortie du code suivant :

def foo(k):

    k[0] = 1

q = [0]

foo(q)

print(q)
- \(\left [ \right .\)1\(\left . \right ]\).
- \(\left [ \right .\)0\(\left . \right ]\).
- \(\left [ \right .\)1, 0\(\left . \right ]\).
- \(\left [ \right .\)0, 1\(\left . \right ]\).
A: \(\left [ \right .\)1\(\left . \right ]\).
Feedback: foo(q) impose q=k. Les deux variables font donc référence à la même liste en mémoire, c’est pourquoi le contenu est modifié.

Q: Comment s’appelle une variable définie en dehors de la fonction qui y fait référence ?
- Une variable globale
- Une variable statique
- Une variable locale
- Une variable automatique
A: Une variable globale
Feedback: Une variable définie à l’extérieur de toute fonction est globale.

Q: Comment s’appelle une variable définie dans la fonction qui y fait référence ?
- Une variable locale
- Une variable statique
- Une variable globale
- Une variable automatique
A: Une variable locale
Feedback: Une variable définie à l’intérieur d’une fonction est locale.

Q: Quelle est la sortie du code suivant :

i=0

def change(i):

    i=i+1

    return i

change(i)

print(i)
- Erreur
- 1
- None
- 0
A: 0
Feedback: i est une variable locale et aucun i n’est référencé à l’extérieur de la fonction.

Q: Quelle est la sortie du code suivant :

def a(b):

    b = b + [5]

c = [1, 2, 3, 4]

a(c)

print(len(c))
- 5
- 4
- 1
- Erreur
A: 4
Feedback: b et c font référence à la même liste en mémoire.

Q: Quelle est la sortie du code suivant :

a=10

b=20

def change():

    global b

    a=45

    b=56

change()

print(a)

print(b)
- 10 56
- 45 56
- 10 20
- Syntaxe Erreur
A: 10 56
Feedback: La déclaration global permet de modifier une variable globale à partir d’une fonction. En revanche, la variable globale a et la variable locale a sont deux variables différentes.

Q: Si une fonction ne possède pas de return, que renvoie-t-elle ? :
- None
- int
- null
- Erreur
A: None
Feedback: Il suffit d’être bilingue !

Q: Quelle est la sortie du code suivant :

def a(b):

    b.append(5)

c = [1, 2, 3, 4]

a(c)

print(len(c))
- 5
- 4
- 1
- Erreur
A: 5
Feedback: b et c font référence à la même liste en mémoire.

Q: Quelle est la sortie du code suivant :

def foo():

    global total

    total += 1

    return total

total = 0

print(foo())
- 1
- 0
- erreur
- Aucune de autres propositions
A: 1
Feedback: La déclaration global permet de modifier une variable globale à partir d’une fonction.

Q: Quel avantage y a-t-il à décomposer son code à l’aide de fonctions ?
- Toutes les autres propositions
- Réduire les duplications de code
- Décomposer les problèmes complexes en problèmes simples
- Améliorer la lisibilité du code
A: Toutes les autres propositions

Q: Quelle est la sortie du code suivant :

def cube(x):

    print (x * x * x)

x = cube(3)

print (x)
- 27 None
- 9
- 27
- None
A: 27 None
Feedback: Une fonction qui ne possède pas de return renvoie None.