@@ -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 |