---
jupytext:
text_representation:
extension: .md
format_name: myst
format_version: 0.13
jupytext_version: 1.11.5
kernelspec:
display_name: Python 3 (ipykernel)
language: python
name: python3
---
+++ {"deletable": false, "editable": false}
# L'indentation
Objectif pédagogique : Apprendre à indenter le code
Avec cette feuille, entraînez-vous également à n'utiliser que le clavier ([ne pas utiliser la souris ou le pad](tuto-jeter-sa-souris.md))
**L'indentation permet principalement deux choses :**
* Rendre un code plus lisible
* Executer correctement le code pour certains langages comme Python
+++ {"deletable": false, "editable": false}
**Observation**
Voici deux cellules :
Placez votre curseur à la fin de la ligne de chacune et faites `entrer`
```{code-cell} ipython3
for ligne in Monfichier
```
```{code-cell} ipython3
for ligne in Monfichier :
```
- Eh oui ! Lorsque vous mettez `:` en fin de ligne, l'indentation se fait automatiquement au retour à la ligne. En Python, cette indentation est plus qu'esthétique, elle est nécessaire. Voyez plutôt ci-après.
**Exemple**
Executez les deux cellules :
```{code-cell} ipython3
Maliste=["I","love","Python"]
for ligne in Maliste :
print(ligne)
```
```{code-cell} ipython3
Maliste=["I","love","Python"]
for ligne in Maliste :
print(ligne)
```
Ouf ! Une erreur vous arrête. Mais ce ne sera pas toujours le cas :
```{code-cell} ipython3
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} ipython3
Maliste=["I","love","Python"]
for ligne in range (0,len(Maliste)) :
a=ligne # instruction diverses
print("Maliste contient ", a," : ",Maliste[a])
```
+++ {"deletable": false, "editable": false}
**Exercice**
Indentez correctement cette Table des Matières en utilisant seulement le clavier ([ne pas utiliser la souris ou le pad](tuto-jeter-sa-souris.md))
* Utilisez Tab pour Indenter
* Pour dédenter utilisez Maj + Tab
* Pour indenter ou dédenter plusieurs lignes sélectionnez les avec Maj + ↑ ou ↓ puis utilisez Tab ou Maj + Tab
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, "editable": true}
* 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
Il faut donc être très prudent, bien relire son code et notamment vérifier l'indentation.
+++ {"deletable": false, "editable": true}
## Acquis
Pour valider les acquis, entrez en mode [édition](concept-mode-edition-vs-commande.md), 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 maitrise la sélection et indentation multiple
- [ ] J'ai réussi à utiliser uniquement le clavier
+++ {"deletable": false, "editable": false}
## Pour aller plus loin
* Exercez-vous à n'[utiliser que le clavier](tuto-jeter-sa-souris.md)
* Apprenez-en davantage sur les [types de cellules](tuto-les-types-de-cellules.md) ou bien comment [enrichir un texte](tuto-enrichir-text.md) avec des médias, liens ou formules mathématiques