繁体   English   中英

计算字符串中小写字母和大写字母个数的 Python 函数

[英]Python function that counts number of lower case and upper case letters in a string

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

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

大写字符数: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。另外,我很确定我写的东西无论如何都不正确,因为它只在字符串中的单词只有一个大写时才有效字母,但我不知道如何修复它以便让它计算大写字母,无论单词中有多少个

分别为小写和大写计数(字符串在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))}")
#!/usr/bin/env python3

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

    for letter in s:
        #If letter is uppercase, add 1 to upper count
        if letter.isupper():
            upper_case_count +=1

        #If letter is lowercase, add 1 to upper count
        if letter.islower() == True:
            lower_case_count +=1

        #All other characters, such as punctuation and questions, will be ignored.


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


s = 'Hello Mr. Rogers, how are you this fine Tuesday?'

up_low(s)

输出:

No. of Upper case characters is 4
No. of Upper case characters is 33

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

    for char in s:
        if char.isupper():
            upper_case_count += 1
        elif char.islower():
            lower_case_count += 1

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM