到目前为止,这是我的代码。
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:
谁能告诉我什么是错的,以及如何解决它?
答案 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
,或将其包装在函数中并每次调用它。