python - 计算字符串中小写和大写字母数量的Python函数
问题描述
我是一个绝对的初学者,我无法弄清楚为什么我的代码没有给出预期的结果。我想写一个函数来计算给定字符串中小写和大写字母的数量。示例如下。
字符串:“你好,罗杰斯先生,你星期二还好吗?” 预期输出:
大写字符数: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))}")
推荐阅读
- javascript - 如何简化嵌套条件?
- python - 如何将 sys.argv 列表元素从字符串更改为整数?
- java - 如何在 Android 10 (API 29) 上更新 mediastore 中的专辑封面?
- reactjs - Firestore 和缓存问题?(反应)
- python - 如何在 Python 中模拟右键单击?
- ruby-on-rails - 通过 Rails 查询 PostGIS 时出现间歇性错误(字符串插值失败?)
- .net - 。网。发送 put 请求时 Guid null
- r - 带有线和直方图的 Facet Wrap 中的第二个 Y 轴 (Tidyverse)
- functional-programming - 具有不同类型索引的互归纳描述?
- google-bigquery - BigQuery,按周求和