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

问题描述

我写了一个函数,它接受一个字符串并返回该字符串中小写字母的数量和大写字母的数量。该程序适用于单个单词,但是一旦我在两个单词之间添加两个包含“空格”的单词,就会把事情搞砸。空格也很重要。你的想法是什么?

def myfunc(s):
    s = str(s)

    upperl = 0
    lowerl = 0
    for i in s:
        if i == i.lower():
            lowerl += 1
        if i == i.upper():
            upperl += 1
        if i == ' ':
            continue
    return upperl,lowerl

x = myfunc('hello G')
print (x)

从单词'hello G'中,我们期望大写字母和小写字母都算,1,5但是两个单词之间的空格使之2,6

标签: python

解决方案


问题是这' ' == ' '.upper()两者' ' == ' '.lower()都是正确的,并且您没有检查您当前是否正在处理字母数字字符或其他内容。相反,您可以检查您使用的是小写字母还是大写字母。

尝试这个:

def calculate_case_count(string: str):
    string = str(string)
    upper_letter_count = 0
    lower_letter_count = 0
    for letter in string:
        if letter.islower():
            lower_letter_count += 1
        elif letter.isupper():
            upper_letter_count += 1
    return upper_letter_count, lower_letter_count


result = calculate_case_count('hello    G ')
print(result) # (1, 5)

推荐阅读