|
|
@@ -1,165 +1,22 @@ |
|
|
|
### Introduction |
|
|
|
questions préliminaires: |
|
|
|
|
|
|
|
* Historique du langage: |
|
|
|
* qui est sous linux? |
|
|
|
* qui est sous mac? |
|
|
|
* qui est sous windows? |
|
|
|
|
|
|
|
* création par Guido pour l'enseignement |
|
|
|
* Monty Python |
|
|
|
* le grand schisme 2/3. |
|
|
|
* Meilleur nul part, excellent partout |
|
|
|
apres install de python: |
|
|
|
|
|
|
|
* Utilisation de Python |
|
|
|
* qui a 3.8? |
|
|
|
* qui a 3.7? |
|
|
|
* qui a 3.6? |
|
|
|
* qui a 3.5? # warning: no f-string there! |
|
|
|
|
|
|
|
* Sciences (physique, chimie ...) |
|
|
|
* Animation |
|
|
|
* Sites web |
|
|
|
* ... |
|
|
|
* Ligne de commande |
|
|
|
* Langage de 'glue' |
|
|
|
macOS azerty: |
|
|
|
|
|
|
|
### 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`. |
|
|
|
|
|
|
|
```python |
|
|
|
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() |
|
|
|
|
|
|
|
```python |
|
|
|
# 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()` |
|
|
|
|
|
|
|
```python |
|
|
|
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 |
|
|
|
|
|
|
|
```python |
|
|
|
import random |
|
|
|
|
|
|
|
secret = random.randint(0, 100) |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
Notions: |
|
|
|
|
|
|
|
* imports |
|
|
|
* accès à un membre avec `.` |
|
|
|
|
|
|
|
|
|
|
|
Des liens: |
|
|
|
|
|
|
|
* La doc officielle (récemment traduite en français): |
|
|
|
https://docs.python.org/fr/3/tutorial/index.html |
|
|
|
|
|
|
|
* sametmax: http://sametmax.com/cours-et-tutos/. Note: ça y parle aussi de |
|
|
|
cul, donc pas à mettre entre toutes les mains ;-) |
|
|
|
|
|
|
|
|
|
|
|
* Fin! |
|
|
|
alt et ( pour { |
|
|
|
alt et ) pour } |
|
|
|
shift alt et ( pour [ |
|
|
|
shift alt et ) pour ] |
|
|
|
shift alt l pour | |
|
|
|
shift n pour ~ |
|
|
|
shift alt / pour \ |