首页 > 解决方案 > 计算字符串中小写和大写字母数量的Python函数

问题描述

我是一个绝对的初学者,我无法弄清楚为什么我的代码没有给出预期的结果。我想写一个函数来计算给定字符串中小写和大写字母的数量。示例如下。

字符串:“你好,罗杰斯先生,你星期二还好吗?” 预期输出:

大写字符数:4

小写字符数:33

def up_low(s):
    upper_case_count = 0
    lower_case_count = 0

    split_s = s.split()

    for word in split_s:

        if word.islower() == False:
            upper_case_count +=1
            lower_case_count += len(word) - 1
        elif word.islower() == True:
            letter_count = len(word)
            lower_case_count += letter_count

    print(f'No. of Upper case characters is {upper_case_count}')
    print(f'No. of Lower case characters is {lower_case_count}')

如果我运行我在上一个示例中编写的函数,我会得到 4 和 36,而不是 33。另外,我很确定我写的无论如何都不正确,因为它只有在字符串中的单词只有一个大写字母时才有效字母,但我不知道如何修复它以便让它计算大写字母,无论单词中有多少

标签: python

解决方案


分别用于小写和大写计数(字符串在 中a

sum(i.islower() for i in a)
sum(i.isupper() for i in a)

并感谢@Jean-François Fabre 的建议,使用map.

sum(map(str.islower,a))
sum(map(str.isupper,a))

完整程序

print(f"The number of lower case characters is {sum(map(str.islower,a))}")
print(f"The number of upper case characters is {sum(map(str.isupper,a))}")

推荐阅读