Python 函数计算字符串中的小写和大写字母
我编写了一个函数,它接受一个字符串,并返回该字符串中小写字母和大写字母的计数。该程序适用于单个单词,但一旦我在两个单词之间添加两个包含“空格”的单词,就会把事情搞砸。空间也很重要。 你的想法是什么Python 函数计算字符串中的小写和大写字母,python,Python,我编写了一个函数,它接受一个字符串,并返回该字符串中小写字母和大写字母的计数。该程序适用于单个单词,但一旦我在两个单词之间添加两个包含“空格”的单词,就会把事情搞砸。空间也很重要。 你的想法是什么 def myfunc(s): s = str(s) upperl = 0 lowerl = 0 for i in s: if i == i.lower(): lowerl += 1 if i == i.upper
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
from collections import Counter
def count_cases(strng):
counts = Counter(strng)
upper = 0
lower = 0
for char, count in counts.items():
if char.isupper():
upper += count
elif char.islower():
lower += count
return (upper, lower)
编辑:删除
字符串
模块。使用内部islower
和isupper
方法。问题在于'=''.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)
在这里使用正则表达式将是更干净的解决方案
重新导入
def计数字母(文本):
n_lower=len(关于findall(“[a-z]”,文本))
n_upper=len(关于findall(“[A-Z]”,文本))
返回n_较低,n_较高
打印(计数字母箱(“你好山羊”))
##结果:(7,2)
可能的重复:(注意,这个解决方案解决了空间问题)我想说,这里不需要使用regex,使用内置的str
类的方法来实现这一点。它绝不比简单地将这些str
方法映射到字符串,然后取sum
(我能想到的最简单的解决方案)更干净。是的,它看起来这种情况没有必要,但它有一个好处,您可以类似地将它扩展到计数数字或其他特殊字符