Python-code zu zählen Vokale
Übernehmen s
ist eine Zeichenfolge von Kleinbuchstaben.
Schreiben Sie ein Programm, dass zählt die Anzahl der Vokale in der Zeichenfolge enthalten s
. Gültig Vokale sind: 'a'
, 'e'
, 'i'
, 'o'
, und 'u'
. Zum Beispiel, wenn s = 'azcbobobegghakl'
, das Programm sollte drucken:
Anzahl der Vokale: 5
Habe ich diese bisher
count = 0
vowels = 'a' or 'e' or 'i' or 'o' or 'u'
for vowels in s:
count +=1
print ('Number of vowels: ' + count)
Kann mir jemand sagen, was falsch ist mit ihm?
- formatieren Sie den code, bitte.
- Ich glaube, Sie brauchen, Lesen Sie die python-Dokumentation über
for
loop-ersten. - was zum Teufel ist
s
?)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als start, versuchen Sie dies:
V
ein string sein?'aeiou'
?Ein paar Probleme. Zuerst, Ihre Zuordnung zu
vowels
tun nicht, was Sie denken, es bedeutet:Python wertet
or
träge; sobald die Prädikate ausgewertetTrue
wird es zurückgegeben. Nicht-leere Sequenzen, einschließlich Zeichenfolgen andere als""
bewertenTrue
, so'a'
zurückgegeben sofort.Zweitens, wenn Sie Durchlaufen
s
Sie ignorieren, dass die Abtretung jedenfalls:for x in y:
weist jedem Element in der iterierbary
auf den Namenx
wiederum so etwas zuvor zugewiesenx
ist nicht mehr erreichbar über diesen Namen.Ich denke, was Sie wollen, ist:
Verwenden Sie Ihre eigenen loop.
Können Sie die Verwendung von string-Formatierung:
Dem obigen code ist für Anfänger
hier ist das einfach:
Dies ist auch eine andere Lösung,
Mit
string.count()
Hier ist ein Beispiel, das verwendet Zähler und ist kompakter und sogar ein wenig schneller als Sundar ' s für größere Zeichenfolgen:
Hier ist mal eine test zum Vergleich der 3 Ansätze:
Ergebnisse (Durchschnitt von sechs Läufen), Versionen: das, Sundar, einfach
Summe: 26 26 26
Zeiten: 392 494 2626
relativ: 80% 100% 532%
Meine Lösung:
Für die Zählung der Vokale aus string
oder
diese geben u-Ausgang für die Anzahl von vokalen in bestimmten Zeichenfolge
ALTERNATIVE LÖSUNG
Ergebnis ist :-
CPU times: user 0 ns, sys: 0 ns, insgesamt: 0 ns
- Wand Zeit: 18.8 µs
//mit for-Schleife eine Zeile:-
Ergebnis ist :-
CPU times: user 0 ns, sys: 0 ns, insgesamt: 0 ns
- Wand Zeit: 18.6 ľs
Benötigen Sie ein array. Das ist ein Sequenz-element, in deinem Fall Zeichen. Hier ist ein Weg zu definieren, die ein array in Python:
Ist hier eine einfache Lösung unter Verwendung eines
in
- Betreiber und einfor
Schleife:Warum
s.lower()
? Zu machen, arbeiten mit einem string, der die Vokale in Großbuchstaben.Einer anderen Implementierung verwenden der Zähler -
die Aussage
set(vowels).intersection(c.keys())
dies gibt den dictint Vokale vorhanden, die in den Satzc.keys()
nurc
- Wörterbücher' Schlüssel iteriert über standardmäßig. Außerdem könnten Sie vereinfachen Ihresum
mitc.get(i, 0)
.print("\nThe count of vowels are:",sum([1 for i in input("\nEnter the string\n\n").lower() if i in ['a','e','i','o','u']]),"\n")
Geben Sie die Zeichenfolge
azcbobobegghakl
Die Anzahl der Vokale: 5
print("\nThe count of vowels are:",sum([1 for i in input("\nEnter the string\n\n").lower() if i in ['a','e','i','o','u']]),"\n")
Geben Sie die Zeichenfolge
azCBOBOBegghakl
Die Anzahl der Vokale: 5