---
puppeteer:
    format: A4
---

# Evaluation - Bases de Python

## QCM (5 pts)

1. (1pt) Que va afficher le code suivant ?
```python
note = 19
if note > 10:
    print("Admis")
else:
    print("Ajourné")
```

- [ ] Rien
- [ ] Admis
- [ ] Ajourné
- [ ] 19

2. (1pt) Si j'écris `data = {}`, `data` est :

- [ ] Un ensemble vide
- [ ] Un dictionnaire vide
- [ ] Une liste vide
- [ ] Une chaîne vide

3. (1pt) Quel nom serait le plus pertinent pour la fonction ci-dessous ?
```python
def ma_fonction(n):
    for i in range(1, 11):
        print(f"{n} x {i} = {n*i}")
```

- [ ] `calcul`
- [ ] `multiplication`
- [ ] `afficher_table_de_multiplication`
- [ ] `tableau`
- [ ] `aff_tbl_mult`

4. (1pt) Quelle est la valeur finale de `total` dans ce code ?
```python
total = 4
for i in range(3):
    total += 2
```

- [ ] 4
- [ ] 6
- [ ] 10
- [ ] 8

5. (1pt) Comment afficher le dernier élément d'une liste `ma_liste` ?

- [ ] `print(ma_liste[-1])`
- [ ] `print(ma_liste[^1])`
- [ ] `print(ma_liste[^0])`
- [ ] `print(ma_liste[len(ma_liste)])`

6. (1pt) Pour tester l'égalité de deux valeurs en Python, on utilise :

- [ ] `==`
- [ ] `!=`
- [ ] `=`
- [ ] `===`


## Questions (8 pts)

1. (2 pts) Donnez le type Python des valeurs suivantes (`int`, `float`, `bool`, `str`) :
    - `False`
    - `7.5`
    - `"Python"`
    - `5`
    - `"3"`
2. (1pt) Quels sont les deux types de boucles possibles en Python ?
3. (1 pt) Quelle boucle est utilisée de préférence pour parcourir les éléments d'une liste ?
4. (3 pts) Analysez et expliquez le résultat du code :
    1. À quoi sert la fonction `somme_pairs` ?
    1. Que vaut `resultat` après exécution ?
    1. Où sont les paramètres de la fonction ? Où est la valeur de retour ? (entourez et annotez dans le code)
```python
def somme_pairs(liste):
    somme = 0
    for element in liste:
        if element % 2 == 0:
            somme += element
    return somme

resultat = somme_pairs([1, 2, 3, 4])
```

1. (1 pt) Quelle *méthode* faut-il utiliser pour ajouter un élément en fin de liste Python ?

## Exercices (7 pts)

1. (3 pts) Écrire un **programme** qui demande l’âge d’un utilisateur et affiche s’il est "majeur" ou "mineur" (majeur à partir de 18 ans).
2. (4 pts) Écrire une **fonction** `moyenne` qui retourne la moyenne des valeurs d’une liste fournie en paramètre.
    - Par **exemple**, `moyenne([10, 20, 30])` doit retourner `20`.
    - La fonction ne doit rien afficher, seulement **retourner** le résultat.


