这是我迄今为止的代码。
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.')
它应该向用户询问一个单词,然后打印出这个单词有多少个小写元音,并不断询问一个词,直到输入为空白。
我有一个循环,但当它第一次问你,说你对"BOO"时,它会说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:
有人能告诉我出了什么问题,以及如何解决吗?
在每次循环迭代时,必须将0分配给count变量,否则将使用旧输入单词中的值。之后,你还需要再次计算新单词中元音的数量。
像这样:
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: ')
您需要将循环移动到每个字符上,以便在获得新输入的循环中。
for char in word:
if char in vowels:
count += 1
在进入while循环之前完成。在循环中,您永远不会重置count
。为了获得预期的结果,可以将for
循环移到while
中,也可以将其封装在函数中,每次调用它。