[Python] Problème sur un code en python, non-définition d'une variable
Résolu
CookieSympa
-
CookieSympa -
CookieSympa -
Bonjour,
J'ai un DM à rendre mais je me heurte à un problème de définition de variable. L'objectif final est de pouvoir reconnaitre la langue d'un texte avec le pourcentage d'apparition de certaines lettres. Pour cela je dois utiliser trois fonctions différentes, la première compte le nombre d'apparition d'une lettre dans le texte (occurences_lettre), la seconde calcule le nombre de lettre totale (nombre_lettres), et la dernière calcule ensuite le pourcentage d'apparition de cette lettre (fct_pourcentage_lettre).
Voici le code:
Cependant une fois lancé, le programme m'indique que la variable "nb_Lettre" n'est pas défini... Et que ma ligne 20 pose problème.
J'espère que certains pourront m'aider en m'expliquer le problème, merci à vous
J'ai un DM à rendre mais je me heurte à un problème de définition de variable. L'objectif final est de pouvoir reconnaitre la langue d'un texte avec le pourcentage d'apparition de certaines lettres. Pour cela je dois utiliser trois fonctions différentes, la première compte le nombre d'apparition d'une lettre dans le texte (occurences_lettre), la seconde calcule le nombre de lettre totale (nombre_lettres), et la dernière calcule ensuite le pourcentage d'apparition de cette lettre (fct_pourcentage_lettre).
Voici le code:
#Obj: Déterminer la langue d'un texte à partir de l'analyse des fréquences des lettres def occurences_lettre(Lettre,phrase): nb_Lettre = phrase.count(Lettre) print(nb_Lettre) return nb_Lettre def nombre_lettres(phrase): nb_total_de_lettres = len(phrase) - phrase.count(" ") print(nb_total_de_lettres) return nb_total_de_lettres def fct_pourcentage_lettre(Lettre,phrase): occurences_lettre(Lettre,phrase) nombre_lettres(phrase) Pourcentage_Lettre = nb_Lettre/nb_total_de_lettres * 100 print(Pourcentage_Lettre) return Pourcentage_Lettre fct_pourcentage_lettre("E","Esprit es tu la")
Cependant une fois lancé, le programme m'indique que la variable "nb_Lettre" n'est pas défini... Et que ma ligne 20 pose problème.
J'espère que certains pourront m'aider en m'expliquer le problème, merci à vous
Configuration: Windows / Chrome 87.0.4280.88
A voir également:
- [Python] Problème sur un code en python, non-définition d'une variable
- Citizen code python avis - Accueil - Outils
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
3 réponses
Bonjour,
Suggestion de lecture, la portée des variables : https://www.pierre-giraud.com/python-apprendre-programmer-cours/portee-variable/
En ligne 14 tu déclenches la fonction, mais tu n'as pas de variable pour récupérer la valeur retournée.
Suggestion de lecture, la portée des variables : https://www.pierre-giraud.com/python-apprendre-programmer-cours/portee-variable/
En ligne 14 tu déclenches la fonction, mais tu n'as pas de variable pour récupérer la valeur retournée.
Quelques observations de graphie sur ton code.
Sur la forme d'abord. Avec python la dénomination des variables est relativement libre. Chacun peut définir ses propres conventions. Mais c'est bien d'en avoir et de s'y tenir. Tu fais cohabiter majuscules et minuscules sans règle apparente : Lettre vs phrase, nb_Lettre vs occurences_lettre vs Pourcentage_Lettre ... utilisant des noms complets et des underscores, tout pourrait être en minuscule, on utilise plutôt des majuscules dans nbLettre, pourcentageLettre, nbTotalLettre. Le lecteur apprécie la régularité dans les conventions du code. Mais cela reste libre ;-)
Sur le fond ensuite, et là cela impacte le résultat du programme. Combien de "E" dans "Esprit es tu la", ton programme répond 1, moi je dirais 2. Là minuscule/majuscule a un impact fort.
Sur la forme d'abord. Avec python la dénomination des variables est relativement libre. Chacun peut définir ses propres conventions. Mais c'est bien d'en avoir et de s'y tenir. Tu fais cohabiter majuscules et minuscules sans règle apparente : Lettre vs phrase, nb_Lettre vs occurences_lettre vs Pourcentage_Lettre ... utilisant des noms complets et des underscores, tout pourrait être en minuscule, on utilise plutôt des majuscules dans nbLettre, pourcentageLettre, nbTotalLettre. Le lecteur apprécie la régularité dans les conventions du code. Mais cela reste libre ;-)
Sur le fond ensuite, et là cela impacte le résultat du programme. Combien de "E" dans "Esprit es tu la", ton programme répond 1, moi je dirais 2. Là minuscule/majuscule a un impact fort.
Moi je mettrais tout en minuscule, lettre et phrase. Ainsi le reste du code ne bouge pas.
Après il y a une vraie question fonctionnelle est-ce que éèêë c'est pareil que e ? Ce n'est pas au programmeur de répondre à la question.
Mais peut être ne se pose t-elle pas puisque tu écris "Esprit es tu la" et non "Esprit es tu là" ;-)
Après il y a une vraie question fonctionnelle est-ce que éèêë c'est pareil que e ? Ce n'est pas au programmeur de répondre à la question.
Mais peut être ne se pose t-elle pas puisque tu écris "Esprit es tu la" et non "Esprit es tu là" ;-)