2016-07-19 5 views
0

"" "Warum diese 4 in der zweiten Benutzereingabe als 'abc'.ii wissen, dass es die Anführungszeichen zählt, da Python die Eingabe' abc 'als' 'abc' übernimmt „daher 5 als Länge zu zählen, wie dieses Problem zu entfernen, für richtige Antwort wie anderer Eingang bekommen, wie oben n unten“ „“Ausgabe des Programms für Benutzereingaben, die entsprechend der Benutzereingabe eine unterschiedliche Länge haben. Eingabe 1 -> abc Eingabe2 -> 'abc'

zu zählen Vokale n Konsonanten erhalten

def get_count(words): 
    words=str(input('Enter:')).lower() 
    vowels = ['a','e','i','o','u'] 
    v_count = 0 
    c_count = 0 
    for letter in words: 
     if letter in vowels: 
      v_count += 1 
     else: 
      c_count+=1 
    print("vowel : {}".format(v_count), "consonant: {}".format(c_count)) 
get_count(input) 

Result: 

Enter:aBc 
vowel : 1 consonant: 2 
Enter:'abc' 
vowel : 1 consonant: 4- ??? why 

Blockquote

Enter:abc 
vowel : 1 consonant: 2 
+0

und .., * was ist die Frage *? –

+0

also words = str (eingabe ('Enter:')) .untere() jetzt wenn ich eingabe - abc len operation gibt länge ist 3 das ist in Ordnung, aber wenn ich 'abc' len Operation gibt Länge 5. Warum ?? Dies ist ein Fehler in meinem Programm –

+0

Hallo alle ich hoffe, ich bin in der Lage, richtig zu vermitteln: - x = len (abc) ist 3, während x = len ('abc') ist 5, wenn Benutzereingabe im Programm verwendet wird? wie über comthis Problem –

Antwort

0

Lange Antwort: Also Ihr String 'abc' die langen 5 Zeichen ist. Python prüft:

  • wenn erste Zeichen " in Vokale und es ist nicht so Konsonant = 0 + 1
  • zweites Zeichen a es in Vokale ist so Vokale = 0 +1
  • dritte b, die nicht in Vokale ist, so Konsonant = 1 + 1 (die jetzt 2 ist)
  • vierte c, die nicht in Vokale ist, so Konsonant = 2 + 1 (die 3 nun ist)
  • fünfte Zeichen ist ", die nicht in Vokale ist, so Konsonant = 3 + 1 (die 4 nun ist)

so am Ende erhalten wir: Vokal: 1 Konsonant: 4

Kurze Antwort: Ihre Eingabe als fünf Zeichen lange Zeichenfolge betrachtet wird, und Ihr Skript iteriert über jedes Element einschließlich einzelne Zitate.

+0

andriyze - Deine Erklärung ist wirklich großartig. Ich war mit dieser Tatsache verwirrt, dass Python auch Teil des Zeichens –

+0

zählte. Sie können für die Antwort stimmen, wenn Sie es nützlich finden – andriyze

+0

Meine Stimme wird nicht gezeigt, wie ich neu bin, um zu stapeln :( –

0

Sie sollten zuerst beurteilen, ob der Buchstabe im Alphabet ist.

def get_count(words): 
    words=str(input('Enter:')) 
    vowels = ['a','e','i','o','u'] 
    v_count = 0 
    c_count = 0 
    for char in words: 
     if char.isalpha(): 
      if char.lower() in vowels: 
       v_count += 1 
      else: 
       c_count+=1 
    print("vowel : {}".format(v_count), "consonant: {}".format(c_count)) 
get_count(input) 
+0

Danke Tisoga. Diese Zusatzzeichen-Alphabet-Sache funktioniert. –

Verwandte Themen