如何修改Python代码计算分段文本元音数量并比较各段数量是否相等
按空格分段计算元音并比较数量的解决方案
修改后的完整代码
text = input('Input your text: ') segments = text.split(' ') # 包含大小写元音,避免漏算(若只需小写可去掉大写部分) vowels = set("aeiouAEIOU") vowel_counts = [] # 遍历每个分段计算元音数 for seg in segments: count = 0 for letter in seg: if letter in vowels: count += 1 vowel_counts.append(count) print(f"分段 '{seg}' 的元音数量: {count}") # 判断所有分段的元音数量是否相等 if len(set(vowel_counts)) == 1: print("所有分段的元音数量相等") else: print("各分段的元音数量不相等")
代码修改说明
- 保留分段逻辑:
split(' ')会按单个空格分割文本,得到你需要的分段列表。如果输入存在连续空格,会生成空字符串分段,若要自动忽略连续空格,可改用text.split()(不带参数)。 - 分段计算元音:不再遍历整个文本,而是循环处理每个分段,单独统计每个分段的元音数量,并将结果存入
vowel_counts列表。 - 大小写兼容:把元音集合扩展为包含大小写,避免输入中有大写元音时漏统计。
- 数量比较:通过将
vowel_counts转为集合(集合自动去重),若集合长度为1,说明所有分段的元音数相等;反之则不相等。也可以用all(count == vowel_counts[0] for count in vowel_counts)实现相同逻辑,两种方式任选即可。
测试示例
输入la-lala-la la-lalala-la时:
- 第一个分段
la-lala-la的元音数为4 - 第二个分段
la-lalala-la的元音数为5 - 最终输出
各分段的元音数量不相等
内容的提问来源于stack exchange,提问作者Marylink_27
相关产品推荐
相关产品推荐

