![](/img/trans.png)
[英]Write a Python function that accepts a string and calculate the number of upper case letters and lower case letters
[英]Python function that counts number of lower case and upper case letters in a string
我是一个绝对的初学者,我无法弄清楚为什么我的代码没有给出预期的结果。 我想编写一个函数来计算给定字符串中小写和大写字母的数量。 示例如下。
字符串:“罗杰斯先生你好,你周二过得好吗?” 预期输出:
大写字符数: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))}")
#!/usr/bin/env python3
def up_low(s):
upper_case_count = 0
lower_case_count = 0
for letter in s:
#If letter is uppercase, add 1 to upper count
if letter.isupper():
upper_case_count +=1
#If letter is lowercase, add 1 to upper count
if letter.islower() == True:
lower_case_count +=1
#All other characters, such as punctuation and questions, will be ignored.
print('No. of Upper case characters is {}'.format(upper_case_count))
print('No. of Upper case characters is {}'.format(lower_case_count))
s = 'Hello Mr. Rogers, how are you this fine Tuesday?'
up_low(s)
输出:
No. of Upper case characters is 4
No. of Upper case characters is 33
def up_low(s):
upper_case_count = 0
lower_case_count = 0
for char in s:
if char.isupper():
upper_case_count += 1
elif char.islower():
lower_case_count += 1
print(f'No. of Upper case characters is {upper_case_count}')
print(f'No. of Lower case characters is {lower_case_count}')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.