例如:“他是个小矮人”有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)
您可以使用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