Ressources du Congo

#TutorielPython3 : Apprendre à coder en Python #42 : Jeux de lettres et de mots #1. Élément de réponse #1

4 Octobre 2019 , Rédigé par Zamba Synkin Publié dans #Dico exquis anti-mystification, #Tech' Net & Code, #e-Learning

undefined

 

 

 

 

Prérequis :  Tous les tutoriels précédents

 

Pour rappel, il nous a été demandé ce qui suit :

 

 Jeux de lettres et de mots #1

1. Écrire un script qui permet de dire si le caractère saisi par l'utilisateur est une lettre de l'alphabet français ou pas.

  • Exemple, si l'utilisateur saisit L ou 5, il aura un message du style : L est bien une lettre de l'alphabet français. Ou 5 n'est pas une lettre de l'alphabet français

Je vous propose de passer de ce pas au script que je vais bien évidemment commenter.

Et quand je saisis par exemple la lettre P :

Jeux de lettres et de mots #1
Jeux de lettres et de mots #1

La Console Python me renvoie ceci :

Jeux de lettres et de mots #1
Jeux de lettres et de mots #1

Et quand je saisis le chiffre au hasard le chiffre 9 :

Jeux de lettres et de mots #1
Jeux de lettres et de mots #1

La Console me renvoie ce qui suit :

Jeux de lettres et de mots #1
Jeux de lettres et de mots #1

Commentaire :

Ce script n'appelle pas de remarque particulière si ce n'est que la ligne 17 veut simplement dire : comparer le caractère saisi avec chacune des 26 lettres de l'alphabet  français (minuscule et majuscule). Et voilà le tour est presque joué! Pourquoi presque joué ? Est-ce à dire que le script n'a pas prévu tous les scénarios possibles ?

Erreur logique 

En effet, ce script est à améliorer en y intégrant les caractères accentués ou spéciaux de la langue de Molière, afin d'éviter de mauvaises surprises. À preuve, quand je saisis par exemple la lettre à :

Jeux de lettres et de mots #1
Jeux de lettres et de mots #1

La Console Python douche mon plaisir :

Jeux de lettres et de mots #1
Jeux de lettres et de mots #1

Le problème ne vient pas de Python, mais il est imputable à une erreur dite logique ou de programmation. Tout simplement. En effet c'est un piège classique dans lequel tombent à pieds joints bien des développeurs en herbe. Cela dit, je puis vous rassurer qu'avec de l'expérience, on anticipe aisément des écueils comme celui-là. 

Je vous propose donc de corriger ce script en y greffant la remarque faite précédemment. Le script devient: 

Jeux de lettres et de mots #1
Jeux de lettres et de mots #1

Remarquez que j'ai rajouté la ligne 6 en prenant une liste contenant tous les caractères accentués ou spéciaux du français. En outre à la ligne 7, j'ai mis une condition supplémentaire: test d'appartenance à cette liste (alphabetSpecial). En définitive, pour qu'un caractère saisi par l'utilisateur soit reconnu comme une lettre de l'alphabet français, il doit remplir l'une des deux conditions de la ligne 10.

Maintenant, quand je saisis un caractère spécial, au hasard, par exemple une cédille ç,

Jeux de lettres et de mots #1
Jeux de lettres et de mots #1

La Console Python me renvoie bien le résultat escompté :

Jeux de lettres et de mots #1
Jeux de lettres et de mots #1

Maintenant que le script a intégré la gestion de tous les scénarios possibles, eh bien, je vous laisse faire des tests comme ça vous chante. 

Lire la suite :  Jeux de lettres et de mots. Éléments de réponse #2

Partager cet article

Commenter cet article