Schreiben Sie eine Funktion analyze_text, die eine Zeichenfolge als Eingabe erhält. Die Funktion sollte die Anzahl der alphabetischen Zeichen (a bis z oder A bis Z) im Text zählen und auch die Anzahl der Buchstaben "e" (Groß- oder Kleinbuchstaben) angeben.Python-Funktion, die die Anzahl der alphabetischen Zeichen zählt, verfolgt, wie oft "e" angezeigt wird
Die Funktion sollte eine Analyse des Textes, so etwas wie dies zurück:
Der Text enthält 240 Buchstaben, von denen 105 (43,75%) sind ‚e‘.
Ich muss den Einsatz der isalpha Funktion machen, die wie folgt verwendet werden kann:
"a".isalpha() # => evaluates to True
"3".isalpha() # => evaluates to False
"&".isalpha() # => False
" ".isalpha() # => False
mystr = "Q"
mystr.isalpha() # => True
Die Funktion sollte folgende Prüfungen bestehen:
from test import testEqual
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)
Also habe ich versucht:
def analyze_text(text):
text = input("Enter some text")
alphaChars = len(text)
#count the number of times "e" appears
eChars = text.count('e')
#find percentage that "e" appears
eCharsPercent = eChars/alphaChars
print("The text contains" + alphaChars + "alphabetic characters, of
which" + eChars + "(" + eCharsPercent + ") are 'e'.")
from test import testEqual
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)
Wie Sie sehen können, nutzt das, was ich ausprobiert habe, nicht die Isalpha-Funktion (ich weiß nicht, wie/wo ich i t). Außerdem gibt die Funktion nicht zurück, ob die Tests bestanden wurden oder nicht. Visualisieren Python unterstützt nicht "Test", und der Texteditor, den ich im Buch verwende, sagt, dass ich einen Einrückungsfehler habe (?) Ich weiß nicht, wo ich anfangen soll - bitte helfen Sie.
Screenshot of Book Text Editor
EDIT: Jetzt Empfang "Typeerror: nicht verketten 'str' und 'int' Objekte auf Linie 12" (die Zeile, die mit "print" beginnt).
in analyse_text die Druckanweisung ist auf 2 Zeilen ohne Backslash. Hier ist einer Ihrer Fehler ... –
Einrückungsfehler bedeutet, dass Sie Ihren Code nicht korrekt eingerückt haben. Da Python zum Gruppieren von Blöcken Einrückungen anstelle von geschweiften Klammern ({,}) verwendet, müssen Sie sicherstellen, dass Sie Leerzeichen und Tabulatoren korrekt verwenden. Mischen Sie Tabulatoren und Leerzeichen nicht und verwenden Sie immer die gleiche Anzahl an Tabs/Leerzeichen. – anroesti
@ Jean-FrançoisFabre du hast Recht Ich habe ein ")" vermisst. Ich habe das behoben, und nun erhalte ich eine neue Fehlermeldung: TypeError: In Zeile 12 können die Objekte 'str' und 'int' nicht verkettet werden. Das ist die Zeile, die mit "print" beginnt. – Sean