在输入的第一个数字上卡住的Python程序

在输入的第一个数字上卡住的Python程序,python,string,loops,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 = 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.')  

有谁能告诉我哪里出了问题,以及如何修复它吗?

您需要将循环移动到每个字符上,以便在循环中获得新的输入

for char in word:
    if char in vowels: 
        count += 1

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

在每次循环迭代时,必须为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: ') 

你是否意识到你只计算第一次输入的元音,而在你的循环中却没有?
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: ')