@@ -0,0 +1,11 @@ | |||||
# Cours Python pour E2L | |||||
## Plan | |||||
* [01 - introduction](sessions/01.md) | |||||
* [02 - plus de concepts](sessions/02.md) | |||||
## Notes | |||||
* [notes](notes.md) |
@@ -0,0 +1,15 @@ | |||||
# Cours Python | |||||
Sessions: | |||||
* [01](sessions/01.md) | |||||
* [02](sessions/02.md) | |||||
# Idées d'ateliers | |||||
* Effets audio | |||||
* Jeux vidéos (pygame) | |||||
* IOT : micro-controller, Rasberry Pi | |||||
* Blender/GIMP | |||||
* Parse RSS and download mp3: https://github.com/yannicklm/pypodget/blob/master/pypodget | |||||
* Stéganographie: cacher un texte dans une image |
@@ -0,0 +1,155 @@ | |||||
### Introduction | |||||
* Historique du langage: | |||||
* création par Guido pour l'enseignement | |||||
* Monty Python | |||||
* le grand schisme 2/3. | |||||
* Utilisation de Python | |||||
* Sciences (physique, chimie ...) | |||||
* Animation | |||||
* Sites web | |||||
* ... | |||||
* Ligne de commande | |||||
* Langage de 'glue' | |||||
### Le REPL | |||||
* S'assurer que tous les étudiants peuvent lancer le REPL | |||||
Notions: | |||||
* Entiers et flottants (via maths basiques: + * - /) | |||||
* Grouper avec des parenthèses. | |||||
* Booléens | |||||
* Variables | |||||
* Fonctions: | |||||
* `quit()` | |||||
### Du code dans un fichier | |||||
Oups, les variables disparaissent quand on ferme le REPL. | |||||
Solution: les mettre dans un fichier `.py`. | |||||
``` | |||||
a = 1 | |||||
b = 2 | |||||
c = a+b | |||||
print(c) | |||||
``` | |||||
S'assurer que les étudiants peuvent: | |||||
* `cd` dans le bon répertoire | |||||
* Lancer `python <lefichier.py`. | |||||
Notions: | |||||
* Fonction print() | |||||
* Commentaires | |||||
* Définir notre propre fonction: | |||||
* Paramètres | |||||
* Indentation | |||||
* Deux-points | |||||
* return() | |||||
``` | |||||
# ceci est un commentaire | |||||
def add(a, b): | |||||
return a + b | |||||
a = 1 | |||||
b = 2 | |||||
c = add(a, b) | |||||
print(c) | |||||
``` | |||||
### Chaînes de caractères | |||||
* Guillemets simple et double | |||||
* Concaténation implicite | |||||
* Backslash et échappement: '\n', '\r', '\t' | |||||
* Raw string 'r' | |||||
* Triple-guillemets | |||||
* Parenthèses | |||||
* Addition avec '+' | |||||
Notions: | |||||
* types. On peut pas ajouter un entier à une strig | |||||
* conversion avec `str()` | |||||
``` | |||||
message = "Le total est: " + c | |||||
print(message) | |||||
``` | |||||
* Indexation | |||||
``` | |||||
+---+---+---+---+---+---+ | |||||
| P | y | t | h | o | n | | |||||
+---+---+---+---+---+---+ | |||||
0 1 2 3 4 5 6 | |||||
-6 -5 -4 -3 -2 -1 | |||||
``` | |||||
* `len()` | |||||
### Flot de contrôle | |||||
* if | |||||
* while | |||||
* `break`, `continue` | |||||
* `for` | |||||
* `range()` | |||||
* On peut aussi itérer sur les strings | |||||
### Entrèe standard | |||||
* input() | |||||
Démo: "à quel nombre je pense" | |||||
```python | |||||
secret = 42 | |||||
print("Devine le nombre auquel je pense"): | |||||
while True: | |||||
reponse = input() | |||||
if response > secret: | |||||
print("Trop grand") | |||||
if response < secret: | |||||
print("Trop petit") | |||||
print("Gagné") | |||||
break | |||||
``` | |||||
Notions: | |||||
* Exceptions: si la conversion échoue | |||||
``` | |||||
improt random | |||||
secret = random.randint(100) | |||||
``` | |||||
Notions: | |||||
* imports | |||||
* accès à un membre avec `.` | |||||
* Fin! |
@@ -0,0 +1,61 @@ | |||||
À chaque fois, on peut faire une démo dans le repl | |||||
# Listes | |||||
* slices | |||||
* `len()` | |||||
* append, extend, insert, remove, pop, clear | |||||
* index, count, sort, reverse | |||||
* Liste par compréhension | |||||
* Filtrage dans une compréhension | |||||
# Tuples | |||||
* Attention, c'est la virgule qui fait le tuple, pas les parenthèses! | |||||
# Dictionnaires | |||||
* Itération sur un dictionnaire | |||||
* Itérer sur les clés et valeurs en même temps | |||||
# Ensembles | |||||
* Compréhensions | |||||
* Les doublons sont éliminés | |||||
``` | |||||
s = { 1, 2, 2, 3} | |||||
s | |||||
``` | |||||
* `.add()` pour un ensemble | |||||
``` | |||||
s.add(1) | |||||
s | |||||
s.add(4) | |||||
s | |||||
``` | |||||
* différence, union | |||||
# Mutabilité | |||||
* Objets modifiables ou non | |||||
* sort() version sorted() | |||||
* Copie | |||||
* Passage par référence dans les fonctions | |||||
* Différence `+=` versus `append()` | |||||
# Fonctions avancées | |||||
* arguments par défaut | |||||
* arguments nommés | |||||
* arguments arbitraires (`*args`, `**kwargs`). | |||||
* Chaînes de documentation | |||||
# Modules, packages |
@@ -0,0 +1 @@ | |||||
print("bonjour, monde!") |
@@ -0,0 +1,8 @@ | |||||
# ceci est un commentaire | |||||
def add(a, b): | |||||
return a + b | |||||
a = 1 | |||||
b = 2 | |||||
c = add(a, b) | |||||
print(c) |
@@ -0,0 +1,16 @@ | |||||
import random | |||||
secret = random.randint(0, 100) | |||||
print("Devine le nombre auquel je pense") | |||||
while True: | |||||
response = input() | |||||
response = int(response) | |||||
if response > secret: | |||||
print("Trop grand") | |||||
continue | |||||
if response < secret: | |||||
print("Trop petit") | |||||
continue | |||||
print("Gagné") | |||||
break |