Browse Source

Initial commit

master
Dimitri Merejkowsky 5 years ago
commit
54ded9cab4
7 changed files with 267 additions and 0 deletions
  1. +11
    -0
      README.md
  2. +15
    -0
      notes.md
  3. +155
    -0
      sessions/01.md
  4. +61
    -0
      sessions/02.md
  5. +1
    -0
      sources/01-bonjour.py
  6. +8
    -0
      sources/02-add.py
  7. +16
    -0
      sources/03-devine-nombre.py

+ 11
- 0
README.md View File

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

+ 15
- 0
notes.md View File

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

+ 155
- 0
sessions/01.md View File

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

+ 61
- 0
sessions/02.md View File

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

+ 1
- 0
sources/01-bonjour.py View File

@@ -0,0 +1 @@
print("bonjour, monde!")

+ 8
- 0
sources/02-add.py View File

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

+ 16
- 0
sources/03-devine-nombre.py View File

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