Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
---
jupytext:
text_representation:
extension: .md
format_name: myst
format_version: 0.13
kernelspec:
display_name: Python 3 (ipykernel)
language: python
name: python3
---
+++ {"deletable": false, "editable": false}
# Jupyter : l'indentation
:::{admonition} Objectifs pédagogiques
- apprendre à indenter efficacement le code
- renforcer l'utilisation du clavier vue dans le tutoriel [se
débarrasser de sa souris](../Semaine6/00-jupyter-jeter-sa-souris.md).
:::
:::{admonition} Définition
L'***indentation*** consiste à mettre en valeur la structure
du code en commençant chaque ligne par un nombre d'espaces
proportionnel à la profondeur d'imbrication dans les blocs de
code. Cela permet d'en améliorer la lisibilité. Dans certains langages
comme Python, cette indentation dénote à elle seule la structure en
blocs et est donc requise.
:::
+++ {"deletable": false, "editable": false}
## Observation
Voici deux cellules. Placez votre curseur à la fin de la ligne de
chacune et tapez <kbd>Entrée</kbd> :
```{code-cell}
for ligne in Monfichier
```
```{code-cell}
for ligne in Monfichier:
```
Eh oui! Comme la plupart des éditeurs de code, l'éditeur de Jupyter a
automatiquement proposé une indentation adaptée au contexte au moment
du retour à la ligne. En Python, cette indentation est plus
qu'esthétique, elle est nécessaire. Voyez plutôt ci-après.
**Exemple :**
Exécutez les deux cellules suivantes :
```{code-cell}
Maliste=["I","love","Python"]
print(ligne)
```
```{code-cell}
Maliste=["I","love","Python"]
print(ligne)
```
Ouf! Une erreur signale ici l'indentation incorrecte. Mais ce ne sera
pas toujours le cas :
```{code-cell}
Maliste = ["I", "love", "Python"]
for ligne in range (0, len(Maliste)):
a = ligne # instruction diverses
print("Maliste contient ", a, " : ", Maliste[a])
```
ne produit pas le même résultat que :
```{code-cell}
Maliste=["I", "love", "Python"]
for ligne in range (0, len(Maliste)):
a = ligne # instruction diverses
print("Maliste contient ", a, " : ", Maliste[a])
```
## Exercice
Indentez correctement la table des matières ci-dessous en utilisant
seulement le clavier (pour réviser, voir le tutoriel [se débarrasser
de sa souris](../Semaine6/00-jupyter-jeter-sa-souris.md)).
:::{admonition} Raccourcis clavier
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
* Pour désindenter utilisez <kbd>Maj</kbd>+<kbd>Tab</kbd>.
* Pour indenter ou désindenter plusieurs lignes d'un coup,
sélectionnez les avec <kbd>Maj</kbd>+<kbd>↑</kbd> ou <kbd>↓</kbd>
puis utilisez <kbd>Tab</kbd> ou <kbd>Maj</kbd>+<kbd>Tab</kbd>.
:::
Voici le résultat attendu :
* TITRE
* Titre 1
* Titre 1.1
* Titre 2
* Titre 2.1
* Titre 2.1.1
* Titre 2.1.2
* Titre 2.2
* Titre 2.3
* Titre 2.4
* Titre 2.4.1
* Titre 3
* Titre 3.1
* Titre 3.2
+++ {"deletable": false}
* TITRE
* Titre 1
* Titre 1.1
* Titre 2
* Titre 2.1
* Titre 2.1.1
* Titre 2.1.2
* Titre 2.2
* Titre 2.3
* Titre 2.4
* Titre 2.4.1
* Titre 3
* Titre 3.1
* Titre 3.2
+++ {"deletable": false, "editable": false}
## Conclusion
Une bonne indentation est essentielle à la lisibilité du code, voire
même à sa correction. Aussi les éditeurs de texte offrent-t-ils des
outils pour la vérifier et l'ajuster efficacement. Il convient de les
maîtriser. Au delà de la programmation, cela s'applique à l'édition de
tout **texte structuré** : Markdown, HTML, etc.
+++ {"deletable": false}
## Acquis
Pour valider les acquis ci-dessous, entrez en mode édition, puis
placez un "x" à la place de l'espace entre les crochets.
- [ ] Une indentation est nécessaire pour faire fonctionner les boucles en Python
- [ ] Indenter différemment un script va produire des résultats différents
- [ ] Je dois toujours relire mon script et vérifier mes sorties
- [ ] Je maîtrise la sélection et indentation multiple
- [ ] J'ai réussi à utiliser uniquement le clavier