Je travaille sur cette question et ne peux pas trouver la bonne réponse, mais j'ai réussi à creuser un trou plus grand & me confondre. Donc, si quelqu'un peut fournir la clarté:Comptage, trouver une certaine lettre et le pourcentage
MODE D'EMPLOI:
Ecrire un analyze_text fonction qui reçoit une chaîne en entrée. Votre fonction devrait compter le nombre de caractères alphabétiques (a à z, ou A à Z) dans le texte et aussi garder la trace du nombre de lettres 'e' (majuscules ou minuscules).
Votre fonction doit renvoyer une analyse du texte sous la forme d'une chaîne phrasé exactement comme ceci: «Le texte contient 240 caractères alphabétiques, dont 105 (43,75%) sont « e » »
Vous devrez utiliser la fonction isalpha.
MON CODE jusqu'à présent: def analyze_text (texte): count = 0 letter_count = 0
for char in text:
if char.isalpha():
count += 1
for e in text:
if e == "e" or e =="E":
letter_count += 1
p = float(letter_count)/float(count) * 100
analyze.text = "The text contains {0} alphabetic characters, of
which {1} ({2}) are 'e'."
print(analyze_text.format(count += 1, letter_count += 1, p))
TESTS that are given:
# Note that depending on whether you use str.format or
string concatenation
# your code will pass different tests. Code passes either
# tests 1-3 OR tests 4-6.
from test import testEqual
# Tests 1-3: solutions using string concatenation should pass these
text1 = "Eeeee"
answer1 = "The text contains 5 alphabetic characters,
of which 5 (100.0%) are 'e'."
testEqual(analyze_text(text1), answer1)
text2 = "Blueberries are tasteee!"
answer2 = "The text contains 21 alphabetic characters, of
which 7 (33.3333333333%) are 'e'."
testEqual(analyze_text(text2), answer2)
text3 = "Wright's book, Gadsby, contains a total of 0 of
that most common symbol ;)"
answer3 = "The text contains 55 alphabetic characters,
of which 0 (0.0%) are 'e'."
testEqual(analyze_text(text3), answer3)
# Tests 4-6: solutions using str.format should pass these
text4 = "Eeeee"
answer4 = "The text contains 5 alphabetic characters,
of which 5 (100%) are 'e'."
testEqual(analyze_text(text4), answer4)
text5 = "Blueberries are tasteee!"
answer5 = "The text contains 21 alphabetic characters,
of which 7 (33.33333333333333%) are 'e'."
testEqual(analyze_text(text5), answer5)
text6 = "Wright's book, Gadsby, contains a total of
0 of that most common symbol ;)"
answer6 = "The text contains 55 alphabetic characters,
of which 0 (0%) are 'e'."
testEqual(analyze_text(text6), answer6)
vous devez montrer quelles erreurs vous obtenez sinon vous ne recevrez aucune aide mais vous aurez beaucoup de votes vers le bas – aydow
Très proche, mais au lieu d'imprimer la chaîne de réponse, vous devez le retourner. En outre, vous pourriez être un peu plus efficace en incrémentant count et letter_count dans la même boucle. –