Python入门问题:读取字符至句号并统计小写元音,计数始终为0求助
解决小写元音统计问题
你的代码问题在于:只要输入的不是句号就给count加1,完全没判断是不是小写元音,所以不管输入什么都会计数,自然得不到正确结果。
正确实现步骤
- 定义元音集合:在代码顶部定义小写元音的集合(用集合查找效率最高,列表也可以),只需要定义一次,不用放循环里。
- 循环内判断元音:每次读取字符后,先判断这个字符是否属于元音集合,是的话才给计数加1。
修改后的完整代码
# 定义所有小写元音字符,放在顶部即可 vowels = {'a', 'e', 'i', 'o', 'u'} count = 0 # input本身返回字符串,不需要额外转str() c = input('Character: ') while c != '.': # 判断当前字符是否是小写元音,是则计数+1 if c in vowels: count += 1 # 读取下一个字符,继续循环 c = input('Character: ') print("Vowel count =", count)
关键说明
- 元音集合放在顶部是最优写法,避免循环里重复定义造成资源浪费。
- 必须在循环内加入
if c in vowels的判断,只有符合条件的字符才计入统计。 input()函数本身返回的就是字符串类型,不需要额外用str()转换。
内容的提问来源于stack exchange,提问作者cs010101111000
相关产品推荐
相关产品推荐

