Initial commit
This commit is contained in:
32
training/exercices/02-language-basics/01-prints.asciidoc
Normal file
32
training/exercices/02-language-basics/01-prints.asciidoc
Normal file
@ -0,0 +1,32 @@
|
||||
= Exercices sur la fonction `print()`
|
||||
|
||||
== Exercice 1
|
||||
|
||||
Affichez dans la console le texte suivant :
|
||||
|
||||
- La rue Rostand,
|
||||
- `3 espaces` se trouve au
|
||||
- Feu à droite
|
||||
|
||||
== Exercice 2
|
||||
|
||||
La fonction `print()` accepte plusieurs arguments, dont les valeurs sont affichées sur la même ligne, et par défaut séparés par un espace.
|
||||
|
||||
*La syntaxe est la suivante* : `print("a", "b", "c", 19)`
|
||||
|
||||
Affichez, en imitant cette syntaxe, le texte suivant :
|
||||
|
||||
* Hauts les cœurs !
|
||||
|
||||
(sous Linux, le e dans l'o s'obtient avec la combinaison de touches `Alt Gr + O`. Sous Windows, `Alt + 339` devrait donner le même résultat)
|
||||
|
||||
== Exercice A1
|
||||
|
||||
La fonction `print()` accepte des arguments avec des noms spécifiques, dont `sep` et `end`. `sep` permet de désigner quelle chaîne sépare les arguments à afficher, et `end` permet de préciser par quelle chaîne terminer le `print`.
|
||||
Par défaut, `sep=" "` et `end="\n"`. La fonction s'utiliserait ainsi :
|
||||
|
||||
```python
|
||||
# Ne sépare pas les éléments via un espace et passe deux fois
|
||||
# à la ligne à la fin du print.
|
||||
print("1", "2", "3", sep="", end="\n\n")
|
||||
```
|
70
training/exercices/02-language-basics/02-variables.asciidoc
Normal file
70
training/exercices/02-language-basics/02-variables.asciidoc
Normal file
@ -0,0 +1,70 @@
|
||||
= Variables
|
||||
|
||||
---
|
||||
|
||||
== Exercice 1
|
||||
|
||||
- Déclarez trois variables, avec des noms corrects, contenant :
|
||||
* Le nom d'une personne, ex. "Paul"
|
||||
* La température courante en °C, ex. 25.3
|
||||
* L'âge d'une personne, ex. 30
|
||||
- Affichez dans la console les valeurs de ces trois variables.
|
||||
|
||||
---
|
||||
|
||||
== Exercice 2
|
||||
|
||||
- Demandez à l'utilisateur de saisir du texte, et mettez-le dans une variable
|
||||
- Affichez le contenu de la variable.
|
||||
|
||||
*Fonctions nécessaires* : `variable = input("Texte d'invite:")`, `print()`
|
||||
|
||||
---
|
||||
|
||||
== Exercice 3 : Expressions
|
||||
|
||||
- Déclarez plusieurs variables, contenant le résultats de :
|
||||
* Une opération arithmétique entre nombres
|
||||
* Une comparaison entre nombres
|
||||
* Une opération d'addition entre deux chaînes
|
||||
* L'expression `(59 * 62 + 13) / 6.5`
|
||||
- Affichez leur contenu dans la console.
|
||||
|
||||
---
|
||||
|
||||
== Exercice A1 : Conversion en ordres de grandeur
|
||||
|
||||
- Déclarez une variable contenant une distance en mètres (au moins 1001, ex 4210)
|
||||
- Affichez le nombre de kilomètres dans cette valeur (nombre entier, ex. 4)
|
||||
- Afficher le nombre de mètres restants dans cette valeur (ex. 210)
|
||||
|
||||
*Outils nécessaires* : opérateurs `//` (division entière), `%` (modulo)
|
||||
|
||||
Vous pouvez afficher tout cela sur une ligne avec un seul appel à la fonction `print()`, par exemple :
|
||||
|
||||
```python
|
||||
kilometers = 5
|
||||
meters = 450
|
||||
print(kilometers, "kilomètres et", meters, "mètres.")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
== Exercice A2 : Deux ordres de grandeur
|
||||
|
||||
- Déclarez une variable contenant une masse en grammes (au moins 1 000 000)
|
||||
- Affichez le nombre de tonnes, de kilogrammes et de grammes dans cette masse.
|
||||
|
||||
Vous devrez utiliser les mêmes outils que dans l'exercice précédent, mais il
|
||||
y a deux ordres de grandeur à prendre en compte !
|
||||
|
||||
---
|
||||
|
||||
== Exercice A3 : Saisie de nombres
|
||||
|
||||
- Demandez à l'utilisateur de saisir deux nombres (en deux fois).
|
||||
- Indiquez quel est le nombre le plus grand qui a été saisi.
|
||||
|
||||
Sachant que la saisie récupérée est toujours une chaîne de caractères vous devez récupérer une version de la saisie qui est un nombre pour pouvoir faire des comparaisons intéressantes.
|
||||
|
||||
*Rappel* : pour récupérer un entier depuis une chaîne, utilisez `int(valeur)`
|
72
training/exercices/02-language-basics/03-conditions.asciidoc
Normal file
72
training/exercices/02-language-basics/03-conditions.asciidoc
Normal file
@ -0,0 +1,72 @@
|
||||
= Conditions
|
||||
|
||||
---
|
||||
|
||||
== Exercice 1 : `if` seul
|
||||
|
||||
- Déclarez une variable avec une valeur entière entre 1 et 6 (lancer de dé).
|
||||
- Affichez `"Lancer réussi !"` si la valeur est supérieure strictement à 4
|
||||
- Retestez votre code en changeant la valeur du lancer
|
||||
|
||||
---
|
||||
|
||||
== Exercice 2 : `if` seul, comparer du texte
|
||||
|
||||
- Déclarez une variable avec le texte `"Bonjour"`;
|
||||
- Affichez `"Bien le bonjour"` si votre variable est égale à `"bonjouR"`.
|
||||
|
||||
(Les majuscules ne sont pas placées ici par hasard, conservez-les)
|
||||
|
||||
---
|
||||
|
||||
== Exercice 2B : `if…else`
|
||||
|
||||
- Assignez à une variable le texte `"Bonjour"`;
|
||||
- Affichez `"Bien le bonjour"` si votre variable est égale à `"Bonjour"`;
|
||||
- Sinon, (dans tous les autres cas) afficher `"Je ne comprends pas !"`.
|
||||
|
||||
---
|
||||
|
||||
== Exercice 3 : `if…elif…else`
|
||||
|
||||
- Assignez à une variable un entier arbitraire entre 0 et 10 inclus;
|
||||
- Si cette valeur est d'au moins 9, afficher `"Élevé"`;
|
||||
- Sinon, si cette valeur est d'au moins 7, afficher `"Haut"`;
|
||||
- Sinon, si cette valeur est d'au moins 4, afficher `"Standard"`;
|
||||
- Sinon, afficher `"Bas"`.
|
||||
|
||||
---
|
||||
|
||||
== Exercice A1 : Multiples conditions
|
||||
|
||||
- Assignez à deux variables `a1` et `a2` des nombres entiers entre 0 et 10
|
||||
- Si `a1` est supérieur à 5 *et* `a2` est inférieur à 6, afficher `"OK"`
|
||||
- Sinon, afficher `"Valeurs incorrectes"`
|
||||
|
||||
---
|
||||
|
||||
== Exercice A2 (conditions avec `and` et `or`)
|
||||
|
||||
- Assignez à deux variables `a1` *et* `a2` des nombres entre 0 et 10
|
||||
- Si `a1` est supérieur à 5 *ou* `a2` est inférieur à 6, afficher `"Conditions suffisantes"`
|
||||
- Sinon, afficher `"Valeurs incorrectes"`
|
||||
|
||||
---
|
||||
|
||||
== Exercice A3
|
||||
|
||||
- Déclarez une variable de statut `is_on` contenant un booléen (`True` ou `False`)
|
||||
- Demandez à l'utilisateur de *saisir un texte*, et assignez-le à une variable `saisie`
|
||||
- Si `saisie` vaut "Marche" :
|
||||
* Si `is_on` est `False`, alors afficher "Allumage en cours..."
|
||||
* Sinon, afficher "Déjà allumé !"
|
||||
- Sinon, si `saisie` vaut "Arrêt" :
|
||||
* Si `is_on` est `True`, afficher "Extinction..."
|
||||
* Sinon, afficher "Déjà éteint !"
|
||||
|
||||
Exemple de rappel :
|
||||
|
||||
```python
|
||||
# Demander de saisir un texte et récupérer le résultat dans une variable
|
||||
saisie = input("Saisissez du texte :")
|
||||
```
|
@ -0,0 +1,6 @@
|
||||
= Exercices sur les blocs vides
|
||||
|
||||
== Exercice 1
|
||||
|
||||
- Écrivez un bloc `if` dont le code, lorsqu'il est exécuté, ne fait rien.
|
||||
- *Outils* : `pass`
|
17
training/exercices/02-language-basics/05-for-loop.asciidoc
Normal file
17
training/exercices/02-language-basics/05-for-loop.asciidoc
Normal file
@ -0,0 +1,17 @@
|
||||
= Exercices sur les boucles `for`
|
||||
|
||||
== Exercice 1
|
||||
|
||||
- Écrivez une boucle `for` sur les nombres de 0 à 9.
|
||||
- Affichez la valeur du nombre parcouru.
|
||||
|
||||
== Exercice 2
|
||||
|
||||
- Écrivez une boucle `for` sur les nombres de 0 à 9.
|
||||
- Affichez la valeur du nombre s'il est pair (`nombre % 2 == 0`)
|
||||
|
||||
== Exercice A1
|
||||
|
||||
- Écrivez une boucle `for` sur les nombres de 0 à 9 (variable nommée `item1`).
|
||||
- Dans cette boucle, écrivez une autre boucle sur les nombres de 0 à `item1` (variable `item2`)
|
||||
- Dans cette sous-boucle, affichez sur la même ligne `item1` et `item2`.
|
22
training/exercices/02-language-basics/06-while-loop.asciidoc
Normal file
22
training/exercices/02-language-basics/06-while-loop.asciidoc
Normal file
@ -0,0 +1,22 @@
|
||||
= Exercices sur les boucles `while`
|
||||
|
||||
== Exercice 1
|
||||
|
||||
- Déclarer une variable `number` égale à 10
|
||||
- Écrivez une boucle `while` tournant tant que `number` est supérieur ou égal à 0.
|
||||
- Dans la boucle, afficher `number`, et retirer `1` à `number`.
|
||||
|
||||
== Exercice 2
|
||||
|
||||
- Écrire une boucle `while` qui tourne indéfiniment (condition `True`, ou soyez créatif)
|
||||
|
||||
== Exercice 3
|
||||
|
||||
- Écrire une boucle `while` qui ne se lance jamais (condition `False`, ou soyez créatif)
|
||||
- (il suffit que la condition soit fausse dès le départ)
|
||||
|
||||
== Exercice A1 : Fibonacci
|
||||
|
||||
- Écrire du code, affichant dans la console, les éléments successifs de la suite de Fibonacci jusqu'à 10 000 :
|
||||
* Utiliser deux variables, `left` and `right` qui vont, au départ, contenir les deux premiers éléments de la suite.
|
||||
* Dans la boucle, modifier `left` and `right` pour ne garder que les deux derniers éléments de la suite.
|
60
training/exercices/02-language-basics/07-lists.asciidoc
Normal file
60
training/exercices/02-language-basics/07-lists.asciidoc
Normal file
@ -0,0 +1,60 @@
|
||||
= Exercices sur les listes
|
||||
|
||||
== Exercice 1
|
||||
|
||||
- Écrivez une liste contenant les nombres entiers pairs de 0 à 10 inclus
|
||||
- Assignez la longueur de la liste à une variable (`len()`)
|
||||
- Affichez le dernier élément de la liste (en utilisant la longueur)
|
||||
- Ajoutez un élément à la fin de la liste
|
||||
- Affichez le nouveau contenu de la liste
|
||||
|
||||
== Exercice 2
|
||||
|
||||
- Écrivez une liste contenant les nombres 1, 2, 4, 8, 16, 32, 64
|
||||
- Supprimez de la liste le nombre 8
|
||||
- Ajoutez à la fin de la liste le nombre 128
|
||||
- Affichez le contenu de la liste dans la console.
|
||||
|
||||
== Exercice 3 (indices négatifs)
|
||||
|
||||
- Écrivez une liste contenant 3 éléments
|
||||
- Affichez le *dernier* élément en utilisant un indice négatif
|
||||
- Affichez le *premier* élément en utilisant un indice négatif
|
||||
|
||||
== Pré-Exercice 4 (slicing)
|
||||
|
||||
[source,python]
|
||||
----
|
||||
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
||||
b = a[0:5] # Index 0 à 5 non inclus. Marche aussi sur les chaînes.
|
||||
c = a[5:0] # L'index de fin est inférieur au départ, renvoie une liste vide
|
||||
f = a[:] # Renvoie toute la liste
|
||||
d = a[::-1] # Tout parcourir à l'envers
|
||||
e = a[::2] # Tout parcourir 2 par 2
|
||||
----
|
||||
|
||||
|
||||
== Exercice 4 (slicing)
|
||||
|
||||
- Écrivez une liste de 6 nombres
|
||||
- Affichez la liste comprenant les 3 premiers éléments
|
||||
- Affichez la liste comprenant tout sauf le premier élément
|
||||
|
||||
== Exercice 5 (slicing avancé)
|
||||
|
||||
- Réutilisez la liste de l'exercice 4
|
||||
- Affichez toute la liste, mais à l'envers
|
||||
- Affichez une liste comprenant les éléments aux indices pairs
|
||||
|
||||
== Exercice A1
|
||||
|
||||
- Écrivez une liste contenant les nombres multiples de 3 de 0 à 15.
|
||||
- Faites une boucle `for` sur cette liste,
|
||||
* et affichez uniquement les nombres pairs de cette liste (`valeur % 2 == 0`)
|
||||
|
||||
== Exercice A2
|
||||
|
||||
- Consultez la https://docs.python.org/3/tutorial/datastructures.html#more-on-lists[référence des fonctions de listes]
|
||||
- Déclarez une liste de nombres flottants
|
||||
- Utilisez la méthode qui sert à renvoyer le dernier élément et le supprimer de la liste
|
||||
- Affichez cet élément, puis la liste
|
42
training/exercices/02-language-basics/08-sets.asciidoc
Normal file
42
training/exercices/02-language-basics/08-sets.asciidoc
Normal file
@ -0,0 +1,42 @@
|
||||
= Exercices sur les ensembles
|
||||
|
||||
== Exercice 1
|
||||
|
||||
- Écrivez un `set` contenant 5 valeurs
|
||||
- Déclarez un second `set` contenant au moins 2 valeurs du premier set
|
||||
- Essayez d'ajouter une valeur déjà existante à un set
|
||||
- Affichez les valeurs communes aux deux sets (`intersection()`)
|
||||
- Affichez un set contenant toutes les valeurs des 2 sets (`union()`)
|
||||
|
||||
== Exercice 2 (conversion)
|
||||
|
||||
- Écrivez une *liste* contenant des valeurs en doublons
|
||||
- Affichez le contenu de la liste
|
||||
- Assignez à une variable la conversion de la liste en set (`set(x)`)
|
||||
- Affichez la valeur du set obtenu
|
||||
|
||||
== Exercice 3
|
||||
|
||||
Al et Kim sont inscrits sur un réseau social. Al a les amis suivants :
|
||||
|
||||
- Josephine
|
||||
- Meghan
|
||||
- Amy
|
||||
- Bob
|
||||
|
||||
Kim a les amis suivants :
|
||||
|
||||
- Frank
|
||||
- Amy
|
||||
- Josephine
|
||||
- Susan
|
||||
|
||||
Quels sont leurs amis en commun ? Écrivez un code qui représente et résout cet énoncé.
|
||||
|
||||
== Exercice 4
|
||||
|
||||
Partant du tuple suivant :
|
||||
|
||||
`(1, 4, 6, 9, 1, 3, 6, 12, 2, 5, 7, 10, 3, 5, 2, 6, 4, 6, 1, 8, 5, 2, 3, 6)`
|
||||
|
||||
- Affichez le nombre de valeurs différentes présentes dans le tuple.
|
@ -0,0 +1,40 @@
|
||||
= Exercices sur les dictionnaires
|
||||
|
||||
== Exercice 1
|
||||
|
||||
- Écrivez un simple dictionnaire associant des noms à des âges :
|
||||
* Paul → 30
|
||||
* Karim → 22
|
||||
* Gina → 41
|
||||
* Anna → 25
|
||||
- Affichez l'âge de Gina
|
||||
- Ajoutez les associations suivantes :
|
||||
* Alina → 33
|
||||
* Victor → 55
|
||||
- Affichez le contenu du dictionnaire
|
||||
|
||||
== Exercice 2 (parcours)
|
||||
|
||||
- Réutilisez votre dictionnaire
|
||||
- Utilisez une boucle `for` normale pour :
|
||||
* Afficher les clés du dictionnaire
|
||||
* Afficher la valeur associée à chaque clé
|
||||
|
||||
== Exercice 3 (parcours + `.items()`)
|
||||
|
||||
- Réutilisez votre dictionnaire
|
||||
- Utilisez une boucle `for` sur `.items()` avec deux variables :
|
||||
* Affichez clé et valeur associée
|
||||
|
||||
== Exercice A1 (compréhension)
|
||||
|
||||
- Déclarez un dictionnaire de conditions météo (°C, condition, pression)
|
||||
* `meteo = {"Pau": (21.0, "Nuageux", 1015), "Gap": (20.3, "Dégagé", 1019), "Osny": (19.1, "Brouillard", 1015)}`
|
||||
- À l'aide d'une compréhension de dictionnaire, récupérer un dictionnaire :
|
||||
* Dont les clés sont les mêmes noms de villes
|
||||
* Dont les valeurs sont uniquement la température associée
|
||||
|
||||
== Exercice A2 (compréhensions)
|
||||
|
||||
- Déclarez une liste via une compréhension, qui contient les nombres pairs de 0 à 98, sauf ceux divisibles par 5. (comprendre, uniquement ceux non divisibles par 5).
|
||||
- Déclarez une liste de mots manuellement. Puis déclarez un générateur (compréhension de tuple) qui contient uniquement les mots de plus de 4 lettres. (`len()`).
|
48
training/exercices/02-language-basics/10-strings.asciidoc
Normal file
48
training/exercices/02-language-basics/10-strings.asciidoc
Normal file
@ -0,0 +1,48 @@
|
||||
= Exercices sur les manipulations de chaînes
|
||||
|
||||
== Exercice 1
|
||||
|
||||
- Consultez https://docs.python.org/3/library/stdtypes.html#string-methods[les méthodes disponibles sur les chaînes]
|
||||
- Déclarez une chaîne de caractères avec plusieurs mots
|
||||
- Affichez la version tout en majuscules (`upper`)
|
||||
- Affichez la version tout en minuscules (`lower`)
|
||||
- Découpez la autour des espaces (`split`)
|
||||
|
||||
== Exercice 2 (joindre les deux bouts)
|
||||
|
||||
- Partant de cette liste de mots :
|
||||
|
||||
[source,python]
|
||||
----
|
||||
word_list = ("mon", "vieux", "tonton", "m'a", "jeté", "sur", "une", "nouvelle", "planète")
|
||||
----
|
||||
|
||||
Utiliser la méthode `join()` sur une chaîne de séparation pour reconstituer la phrase entière.
|
||||
(N'utilisez pas de boucle `for`).
|
||||
|
||||
== Exercice 3 (slicing)
|
||||
|
||||
- Déclarez une chaîne de caractères quelconque
|
||||
- En utilisant le _slicing_, affichez-la à l'envers
|
||||
- De la même façon, affichez uniquement les 5 premiers caractères
|
||||
- Affichez le texte, mais uniquement un caractère sur deux
|
||||
|
||||
== Exercice 4 (f-strings)
|
||||
|
||||
- Déclarez plusieurs variables :
|
||||
* `number = 14`
|
||||
* `base_list = [1, 2, 3]`
|
||||
- Affichez une *f-string* incluant le contenu de `number` et `base_list` :
|
||||
* Il est *14* heures. La liste est *[1, 2, 3]*.
|
||||
|
||||
== Exercice A1 (`join` + conversion)
|
||||
|
||||
Partant de cette liste :
|
||||
|
||||
[source, python]
|
||||
----
|
||||
items = ["Hello, it's", True, "that", 40, "people have", None]
|
||||
----
|
||||
|
||||
- Confectionner une phrase avec `" ".join()`.
|
||||
- La fonction `join` nécessitant une liste de chaînes pour fonctionner, utilisez une compréhension de liste pour convertir cette liste en liste de chaînes (utilisez `str(x)`).
|
Reference in New Issue
Block a user