首先,我知道有更简单(更好)的方法可以做到这一点,我对此很陌生。当我运行它时,它工作正常,但第一次它计数为Y时,它会加2。如果我开始时y=-1
一切都正确。是什么原因造成的?
word=raw_input("Input your word>")
a=0
e=0
i=0
o=0
u=0
y=0
letternumber=len(word)
while letternumber>=0:
letternumber=letternumber-1
if word[int(letternumber)].lower() == "a":
a=a+1
elif word[int(letternumber)].lower() == "e":
e=e+1
elif word[int(letternumber)].lower() == "i":
i=i+1
elif word[int(letternumber)].lower() == "o":
o=o+1
elif word[int(letternumber)].lower() == "u":
u=u+1
elif word[int(letternumber)].lower() == "y":
y=y+1
else:
print str(a) + str(e) + str(i) + str(o) + str(u) + str(y)
您的while循环逻辑已损坏。更改letternumber>=0:
为,letternumber>0:
因为在循环中您letternumber
在检查单词中的位置之前先递减。您最终word
再次检查-1或最后一个字母(因此,以元音结尾的单词将被计数两次)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句