陷入第一个输入数字的Python程序

时间:2014-10-15 12:03:37

标签: python string loops

到目前为止,这是我的代码。

word = input('Enter a word: ')   
count = 0
vowels = ['a' , 'e' , 'i' ,'o' , 'u']
for char in word:
    if char in vowels: 
        count += 1
while word != "":
  print(word + ' contains ' + str(count) + ' vowel.')
  word = input('Enter a word: ') 
if not word:
  print("")
elif count == 1:
  print(word + ' contains ' + str(count) + ' vowel.') 
elif count > 1:
  print(word + ' contains ' + str(count) + ' vowels.')
elif count < 1:
  print(word + ' contains ' + str(count) + ' vowels.')  

它应该向用户询问一个单词,然后打印出该单词有多少个小写元音,并一直询问一个单词,直到输入为空。

我有循环工作,但是当它第一次问你,并说你是对的时候&#34; BOO&#34;它会说BOO包含2个元音,然后你输入的每个其他单词继续有2个元音,并且它不会根据单词改变。我想你可以说它会卡住。

这是一个例子

Enter a word: hello
hello contains 2 vowels.
Enter a word: me
me contains 2 vowels.
Enter a word: tomorrow
tomorrow contains 2 vowels.
Enter a word: 

谁能告诉我什么是错的,以及如何解决它?

3 个答案:

答案 0 :(得分:1)

您需要将每个字符的循环移动到您获得新输入的循环中。

答案 1 :(得分:1)

您必须在每次循环迭代时为 count 变量指定0,否则您将使用旧输入单词中的值。之后,您还需要再次计算新单词中的元音数量。

像这样:

vowels = ['a' , 'e' , 'i' ,'o' , 'u']
word = input('Enter a word: ') 

while word != "":
        count = 0
        for char in word:
            if char in vowels: 
                count += 1
        print(word + ' contains ' + str(count) + ' vowel.')
        word = input('Enter a word: ') 

答案 2 :(得分:0)

for char in word:
    if char in vowels: 
        count += 1
在进入while循环之前完成

。在循环中,您永远不会重置count。为了获得预期的结果,可以将for循环移动到while,或将其包装在函数中并每次调用它。