Le bouton retour
Tu visites un site de sport. Puis la météo. Puis une vidéo. Tu appuies sur « retour » : tu retombes sur la météo. Encore une fois : le sport.
Le navigateur retient les pages dans une pile. Le bouton retour retire la page du dessus.
Dans cette leçon, tu vois deux travaux que fait une pile.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Historique | La liste des pages déjà visitées, gardée dans une pile. | accueil, sport, météo |
| Parenthèse ouvrante | Le signe qui commence un groupe. | ( |
| Parenthèse fermante | Le signe qui termine un groupe. | ) |
| Bien parenthésé | Chaque ouvrante a sa fermante, dans le bon ordre. | (a[b]) |
| Imbriqué | Un groupe placé à l’intérieur d’un autre. | (a(b)) |
| Profondeur | Le nombre de groupes ouverts en même temps. | ((a)) a une profondeur de 2 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
À toi : le bouton retour
# La page d'avant est au sommet de la pile des pages visitées.
pages_precedentes = []
page = "accueil"
print("Je suis sur", page)
# Je visite le sport : je pose la page actuelle sur la pile.
pages_precedentes.append(page)
page = "sport"
print("Je suis sur", page, "| pile :", pages_precedentes)
pages_precedentes.append(page)
page = "meteo"
print("Je suis sur", page, "| pile :", pages_precedentes)
# Bouton retour : on dépile la dernière page posée.
page = pages_precedentes.pop()
print("Retour. Je suis sur", page, "| pile :", pages_precedentes)
# Appuie une deuxième fois sur retour. Où arrives-tu ?
Exemple travaillé : suivre l’historique
| Geste | Page actuelle | Pile des pages d’avant |
|---|---|---|
| Départ | accueil | [] |
| Visiter sport | sport | [accueil] |
| Visiter météo | meteo | [accueil, sport] |
| Retour | sport | [accueil] |
| Retour | accueil | [] |
| Visiter vidéo | video | [accueil] |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
À toi : où est-on ?
À toi de jouer
À toi : où est-on ?
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Le deuxième travail : les parenthèses
Un texte est bien parenthésé si chaque ouvrante a sa fermante, dans le bon ordre.
(a[b]) est bien placé. (a] ne l’est pas. ((a) non plus.
Un correcteur de code fait cette vérification tout le temps. Il utilise une pile.
La règle pour vérifier
On lit le texte lettre par lettre, de gauche à droite.
- Une ouvrante : on l’empile.
- Une fermante : on dépile. La pile ne doit pas être vide. L’ouvrante retirée doit être de la même sorte.
- Une autre lettre : on l’ignore.
À la fin, la pile doit être vide.
Exemple travaillé : vérifier (a[b])
| Lettre | Geste | Pile après |
|---|---|---|
| ( | empiler | [(] |
| a | ignorer | [(] |
| [ | empiler | [(, [] |
| b | ignorer | [(, [] |
| ] | dépiler [ : bonne sorte | [(] |
| ) | dépiler ( : bonne sorte | [] |
| Fin | pile vide | Bien placé |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
À toi : la vérification en code
def bien_parenthese(texte):
pile = []
for lettre in texte:
if lettre == "(" or lettre == "[":
pile.append(lettre)
elif lettre == ")" or lettre == "]":
if len(pile) == 0:
return False
ouvrante = pile.pop()
if lettre == ")" and ouvrante != "(":
return False
if lettre == "]" and ouvrante != "[":
return False
return len(pile) == 0
print(bien_parenthese("(a[b])"))
print(bien_parenthese("(a]"))
print(bien_parenthese("((a)"))
print(bien_parenthese(")a("))
# Essaie "([)]". Les deux sortes de parenthèses se croisent.