我怎么精确算出大写字符后面有多少个小写字符?

问题描述 投票:-3回答:1

例如:“他是个小矮人”有2个小写字母,大写字母后面。我曾尝试使用Google搜寻,但在那儿却找不到任何类似的东西。我在计算小写和大写字符的地方有此代码:

letters = input("Enter string: ")
count1=0
count2=0
for i in letters:
      if(i.islower()):
            count1=count1+1
      elif(i.isupper()):
            count2=count2+1

print("The number of lowercase characters is:")
print(count1)
print("The number of uppercase characters is:")
print(count2)
python
1个回答
0
投票

您可以使用regex将字符串分成多个子字符串,每个子字符串都遵循regex模式。

以下模式

<UPPERCASE><lowercase>

将示例字符串“ 他是个小个子”拆分为以下子字符串

([A-Z][^A-Z]*)

然后您将每个子字符串进一步拆分为He Is a small man <UPPERCASE>

<lowercase>

然后最终获得H, e I, s a small man 子字符串的len()

这里是示例代码:

<lowercase>

输出:

import re

pattern = re.compile("(([A-Z])([^A-Z]*))")
matches = re.findall(pattern, input("Enter string: "))

for m in matches:
    print(f"substring: {m[0]}")

    uppercase = m[1]
    print(f"uppercase: {uppercase}")

    lowercases = m[2].replace(" ", "")
    num_lowercases = len(lowercases)
    print(f"lowercase chars: {num_lowercases}")

使用Enter string: He Is a small man substring: He uppercase: H lowercase chars: 1 substring: Is a small man uppercase: I lowercase chars: 10 检索匹配项,该返回字符串中的所有模式作为字符串列表。请注意,我添加了findall以从小写字符计数中排除空格。

[如果您还想要大写和小写的总数,则可以只跟踪类似于findall.replace(" ", "")变量的总数:

count1

输出:

count2
© www.soinside.com 2019 - 2024. All rights reserved.