Il faut parler de l'intépréteur interactif bien après - au début, il n'apporte que de la confusionmaster
@@ -0,0 +1,72 @@ | |||||
Installation | |||||
============ | |||||
Pour suivre ce cours, il vous faudra installer deux composants | |||||
essentiels: | |||||
* L'interpréteur Python | |||||
* Un éditeur de texte | |||||
Installation de Python | |||||
---------------------- | |||||
Linux | |||||
+++++ | |||||
Il y a toutes les chances que Python soit déjà installé sur votre | |||||
distribution. Pour vous en assurer, tapez: | |||||
.. code-block:: console | |||||
python3 --version | |||||
Sinon, installez le paquet correspondant à Python3 (quelque chose comme | |||||
``sudo apt install python3``` | |||||
macOS | |||||
++++++ | |||||
Python3 est disponible dans `homebrew <https://brew.sh/>`_ | |||||
.. code-block:: console | |||||
brew install python | |||||
Windows | |||||
+++++++ | |||||
Python3 est disponible dans Microsoft store. | |||||
Sinon, vous pouvez aussi télécharger l'installeur depuis https://python.org | |||||
Veillez à cocher la case "Ajouter Python au PATH" | |||||
Installation d'un éditeur de texte | |||||
---------------------------------- | |||||
Je vous conseille pour commencer d'utiliser un éditeur | |||||
de texte basique. Vous n'avez pas besoin d'un IDE, | |||||
surtout si vous débutez | |||||
* Linux; ``gedit``, ``kate``, ... | |||||
* macOS: ``CotEditor`` | |||||
* Windows: ``Notepad++`` | |||||
J'insiste sur **simple**. Inutile d'installer un IDE pour le moment. | |||||
Configuration de l'éditeur de texte | |||||
------------------------------------ | |||||
Prenez le tempe de configurer votre éditeur | |||||
de texte de la façon suivante: | |||||
* Police de caractères à chasse fixe | |||||
* Indentation de *4 espaces* | |||||
* Remplacer les tabulations par des espaces | |||||
* Activer la coloration syntaxique | |||||
Cela vous évitera des soucis plus tard. |
@@ -1,5 +1,5 @@ | |||||
L'interpréteur interactif | |||||
========================= | |||||
Code source | |||||
=========== | |||||
Installation | Installation | ||||
------------ | ------------ | ||||
@@ -0,0 +1,85 @@ | |||||
Code source | |||||
=========== | |||||
Définition | |||||
----------------------- | |||||
Aussi appelé: "code source", ou "source". | |||||
L'essence du logiciel libre :) | |||||
Notre premier fichier source | |||||
----------------------------- | |||||
Insérez le code suivant dans votre éditeur de texte | |||||
.. code-block:: python | |||||
print("Bonjour, monde") | |||||
# affiche: Bnojour, monde | |||||
Oui, juste ces deux lignes. | |||||
Sauvegardez dans un fichier `bonjour.py` dans `Documents/e2l/python` par exemple | |||||
Lancer du code en ligne de commande | |||||
----------------------------------- | |||||
Lancez une invite de commandes et tapez quelque chose comme: | |||||
.. code-block:: console | |||||
cd Documents/e2l/python/ | |||||
python3 bonjour.py | |||||
Si tout se passe bien, vous devrez voir s'afficher ceci: | |||||
.. code-block:: text | |||||
Bonjour, monde | |||||
print() | |||||
------- | |||||
Revenons sur ce qu'il s'est passé : nous avions le mot `print` avec des parenthèses | |||||
et quelque chose à l'intérieur des parenthèses, et ceci a provoqué l'affichage | |||||
du contenu des parenthèses dans le terminal. | |||||
C'est *la* principale façon d'intéragir avec du code Python : on peut demander | |||||
à l'interpréteur d'afficher n'importe quel valeur. | |||||
Commentaires | |||||
------------ | |||||
La deuxième ligne, quant à elle, a été complètement ignorée par l'interpréteur parce | |||||
qu'elle commençait par un ``#``. Il s'agit d'un *commentaire*, et il sert principalement | |||||
aux humains qui lisent le code. | |||||
Note à propos des examples | |||||
--------------------------- | |||||
La plupart des examples de ce cours contiendront un ou plusieurs appels à | |||||
`print` afin d'afficher les opérations que l'interpréteur a effectué. | |||||
Pour lire ce cours de manière efficace, il est conseillé de lancer les | |||||
examples de code sur votre machine, et de vérifier si ce qui est | |||||
affiché sur votre machine correspond à ce qui est écrit dans le cours. | |||||
Il est aussi recommandé de _ne pas_ copier/coller le code. | |||||
À la place, prenez le temps de retaper le code dans votre éditeur. | |||||
Plusieurs raisons à cela: | |||||
* Recopier le code vous aidera à vous souvenir de la syntaxe | |||||
* Si vous faites des erreurs, Python vous préviendra et vous | |||||
découvrirer les erreurs courantes | |||||
* Il est possible que des erreurs subsistent dans ce cours, | |||||
et procéder ainsi nous permettra de les corriger. |
@@ -1,62 +0,0 @@ | |||||
Maths simples | |||||
============= | |||||
Opérations avec des entiers | |||||
--------------------------- | |||||
.. code-block:: python | |||||
>>> 1 | |||||
1 | |||||
>>> 2 | |||||
2 | |||||
>>> 1 + 2 | |||||
3 | |||||
>>> 2 * 3 | |||||
6 | |||||
Opérations avec des flottants | |||||
----------------------------- | |||||
C'est le ``.`` qui fait le flottant | |||||
.. code-block:: python | |||||
>>> 0.5 | |||||
0.5 | |||||
>>> 0.5 + 0.2 | |||||
0.7 | |||||
>>> 10 / 3 | |||||
3.3333333333333335 | |||||
*Note: les flottants sont imprécis* | |||||
Division entières et modulo | |||||
--------------------------- | |||||
.. code-block:: python | |||||
>>> 14 // 3 | |||||
4 | |||||
>>> 14 % 3 | |||||
2 | |||||
*Le `%` n'a rien à voir avec un pourcentage!* | |||||
Priorité des opérations | |||||
------------------------ | |||||
.. code-block:: python | |||||
>>> 1 + 2 * 3 | |||||
7 | |||||
>>> (1 + 2) * 3 | |||||
9 | |||||
*Les parenthèses permettent de grouper les expressions* |
@@ -0,0 +1,76 @@ | |||||
Maths simples | |||||
============= | |||||
Opérations avec des entiers | |||||
--------------------------- | |||||
On peut utiliser ``+, *, -`` avec des entiers: | |||||
.. code-block:: python | |||||
print(1 + 2) | |||||
# affiche: 3 | |||||
print(6 - 3) | |||||
# affiche: 4 | |||||
print(2 * 4) # une étoile pour la multiplication | |||||
# affiche: 8 | |||||
Opérations avec des flottants | |||||
----------------------------- | |||||
C'est le ``.`` qui fait le flottant | |||||
.. code-block:: python | |||||
print(0.5 + 0.2) | |||||
# affiche: 0.7 | |||||
print(10 / 3) | |||||
3.3333333333333335 | |||||
.. note:: | |||||
Les flottants sont imprécis, | |||||
ce qui explique le `5` à la fin de l'affichage | |||||
de la division de 10 par 3 | |||||
Division entières et modulo | |||||
--------------------------- | |||||
14 divisé par 3 font 4 avec un reste de 2. | |||||
On peut récupérer le quotient avec `//` et | |||||
le reste avec ``%``. | |||||
.. code-block:: python | |||||
print(14 // 3) | |||||
# affiche: 4 | |||||
print(14 % 3) | |||||
# affiche: 2 | |||||
.. warning:: | |||||
Le ``%`` n'a rien à voir avec un pourcentage! | |||||
Priorité des opérations | |||||
------------------------ | |||||
Comme en maths, la multiplication est prioritaire | |||||
sur les autres opérations:: | |||||
print(1 + 2 * 3) | |||||
# affiche: 7 | |||||
et on peut utiliser des parenthèses pour grouper les opérations:: | |||||
print((1 + 2) * 3) | |||||
# affiche: 9 |
@@ -5,5 +5,6 @@ Chapitre 2 - Premiers pas | |||||
:maxdepth: 1 | :maxdepth: 1 | ||||
01-bases-ligne-de-commandes | 01-bases-ligne-de-commandes | ||||
02-interpréteur.rst | |||||
03-maths-simples.rst | |||||
02-installation | |||||
03-code-source | |||||
04-maths-simples.rst |
@@ -1,45 +1,46 @@ | |||||
Variables | Variables | ||||
========= | ========= | ||||
.. code-block:: python | |||||
On peut associer des *variables* à des *valeurs* en les plaçant | |||||
de part et d'autre du signe `=`: on appelle cette opération | |||||
une *assignation*. | |||||
>>> a = 2 | |||||
>>> a | |||||
2 | |||||
>>> b = 3 | |||||
>>> a + b | |||||
5 | |||||
Ensuite, on peut utiliser la variable à la place de sa valeur: | |||||
à chaque fois que l'interpréteur essaye d'exécuter du code, | |||||
il commence par remplacer les variables par leurs valeurs:: | |||||
* On peut nommer des valeurs | |||||
* On peut afficher la valeur d'une variable entrant son nom dans le REPL | |||||
a = 2 | |||||
print(a) | |||||
# affiche: 2 | |||||
b = 3 | |||||
print(a + b) | |||||
# affiche: 5 | |||||
.. code-block:: python | |||||
>>> a = 2 | |||||
>>> a | |||||
2 | |||||
>>> a = 3 | |||||
>>> a | |||||
3 | |||||
On peut aussi *changer* la valeur d'une variable en l'assignant | |||||
à une nouvelle valeur:: | |||||
* On peut changer la valeur d'une variable (d'où son nom) | |||||
a = 2 | |||||
print(a) | |||||
# affiche: 2 | |||||
* Quand Python essaie d'exécuter du code, il commence par remplacer les | |||||
variables par leurs valeurs | |||||
a = 3 | |||||
print(a) | |||||
# affiche: 3 | |||||
Nom des variables | Nom des variables | ||||
----------------- | ----------------- | ||||
Préférez des noms longs et descriptifs | |||||
Ci-dessus j'ai utilisé des noms de variables à une lettre, comme en maths, | |||||
mais il est préférable d'avoir des noms longs et descriptifs | |||||
Toujours en minuscules | |||||
Aussi, la convention est de: | |||||
Séparez les "mots" par des tirets bas (underscore) | |||||
.. code-block:: python | |||||
* Les écrire en minuscules | |||||
* De séparer les mots par des tirest bas (*underscore*):: | |||||
score = 42 | score = 42 | ||||
age_moyen = 22 | age_moyen = 22 |
@@ -1,57 +1,55 @@ | |||||
Chaînes de caractères | Chaînes de caractères | ||||
====================== | ====================== | ||||
Aussi appelées "string". | |||||
Les chaînes de caractères, aussi appelées "string", permettent | |||||
de représenter du texte. On a utilisé une string pour afficher | |||||
"bonjour monde" dans le chapitre précédent. | |||||
On écrit toujours les strings entre guillemets. | |||||
Avec des simple quotes (``'``) | |||||
soit avec des doubles guillemets:: | |||||
.. code-block:: python | |||||
>>> 'Bonjour monde!' | |||||
'Bonjour monde!' | |||||
print("Bonjour monde!") | |||||
# affiche: Bonjour monde! | |||||
Marche aussi avec des double quotes (`"`) | |||||
.. code-block:: python | |||||
soit avec des guillemets simples:: | |||||
>>> "Bonjour, monde!" | |||||
'Bonjour monde' | |||||
print("Bonjour monde!") | |||||
# affiche: Bonjour monde! | |||||
Double et simple quotes | Double et simple quotes | ||||
----------------------- | ----------------------- | ||||
On peut mettre des simples quotes dans des double quotes et vice-versa. | |||||
On peut mettre des simples quotes dans des double quotes et vice-versa:: | |||||
.. code-block:: python | |||||
>>> "Il a dit: 'bonjour' ce matin." | |||||
"Il a dit: 'bonjour' ce matin." | |||||
print("Il a dit: 'bonjour' ce matin.") | |||||
# affiche: Il a dit: 'bonjour' ce matin. | |||||
>>> 'Il a dit: "bonjour" ce matin' | |||||
'Il a dit: "bonjour" ce matin!' | |||||
print('Il a dit: "bonjour" ce matin') | |||||
# affiche: Il a dit: "bonjour" ce matin | |||||
Échappement | Échappement | ||||
----------- | ----------- | ||||
Avec la barre oblique inversée "backslash" | |||||
On peut aussi *échapper* des caractères avec la | |||||
barre oblique inversée ``\\`` - backslash. | |||||
.. code-block:: python | .. code-block:: python | ||||
>>> 'Il a dit: "bonjour". C\'est sympa!' | |||||
'Il a dit: "bonjour". C\'est sympa!' | |||||
print('Il a dit: "bonjour". C\'est sympa!') | |||||
# affiche: Il a dit: "bonjour". C'est sympa! | |||||
Concaténation | Concaténation | ||||
------------- | ------------- | ||||
On peut construire de longues chaînes de caractères en | |||||
en concaténatant de plus petites:: | |||||
.. code-block:: python | |||||
>>> name = "John" | |||||
>>> message = "Bonjour " + name + " !" | |||||
>>> message | |||||
"Bonjour John !" | |||||
name = "John" | |||||
message = "Bonjour " + name + " !" | |||||
print(message) | |||||
# affiche: Bonjour John ! |
@@ -1,36 +1,65 @@ | |||||
Types | Types | ||||
===== | ===== | ||||
.. code-block:: python | |||||
On a vu qu'on pouvait utiliser ``+`` **à la fois** pour additionner des nombres | |||||
ou concaténer des strings. Mais on ne peut pas utiliser ``+`` avec une string | |||||
d'un côté et un entier de l'autre:: | |||||
>>> a = 42 | |||||
>>> message = "La réponse est: " + a | |||||
TypeError: can only concatenate str (not "int") to str | |||||
a = 42 | |||||
b = 4 | |||||
a + b # ok | |||||
*Notre premier message d'erreur !* | |||||
salutation = "bonjour, " | |||||
prénom = "Bob" | |||||
salutation + prénom # ok | |||||
message = "La réponse est " + a | |||||
# affiche: | |||||
# TypeError: can only concatenate str (not "int") to str | |||||
Ceci est notre premier message d'erreur: si l'interpréteur est incapable | |||||
d'éxécuter une instruction, il affiche un message d'erreur est s'interrompt | |||||
immédiatement. | |||||
On ne mélange pas les torchons et les serviettes! | |||||
Conversions | Conversions | ||||
----------- | ----------- | ||||
Pour résoudre le problème ci-dessus, il faut effectuer une *conversion de types:* | |||||
Entier vers string | Entier vers string | ||||
++++++++++++++++++ | ++++++++++++++++++ | ||||
.. code-block:: python | |||||
On peut convertir un entier en string en utilisant le mot ``str`` et des parenthèses | |||||
autour de la variable ou de la valeur:: | |||||
>>> a = 42 | |||||
>>> message = "La réponse est: " + str(a) | |||||
>>> message | |||||
'La réponse est 42' | |||||
message = "La réponse est: " + str(42) | |||||
print(message) | |||||
# affiche: La réponse est 42 | |||||
String vers entier | |||||
++++++++++++++++++ | |||||
réponse = 42 | |||||
message = "La réponse est: " + str(42) | |||||
print(message) | |||||
# affiche: La réponse est 42 | |||||
String vers nombres | |||||
+++++++++++++++++++ | |||||
Inversement, on peut convertir un string en entrier en utilisant | |||||
le mot ``int`` et des parenthèses:: | |||||
quarante_deux_en_chiffres = "42" | |||||
réponse = int(quarante_deux_en_chiffres) | |||||
print(réponse) | |||||
# affiche: 42 | |||||
Pour convertir une string en flottant, on peut utiliser ``float()``:: | |||||
.. code-block:: python | |||||
taille_sur_le_passeport = "1.62" | |||||
taille_en_mètres = float(taille_sur_le_passeport) | |||||
>>> answer = int("42") | |||||
>>> answer | |||||
42 | |||||
Notez les parenthèses autour des valeurs. |