繁体   English   中英

我试图弄清楚如何计算在Python的字符串句子中字母大写的次数

[英]I'm trying to figure out how to count how many times a letter is capitalized in a string sentence in Python

要求我将句子中每个单词的首字母大写,然后返回已大写的字母数。 到目前为止,我有:

text = input('Enter a sample text:\n')
sentence = text.split('.')
    for i in sentence:
        print (i.strip().capitalize()+". ",end='')

我只需要弄清楚如何计算一个字母大写的次数。

标准库中有一个title函数,用于将每个单词的第一个字母大写:

>>> x = 'one two Three four'

>>> x.title()
'One Two Three Four'

然后剩下的唯一事情就是计算原始字符串和修改后的字符串之间不同的字符数。 理解力可以很好地表达这一点:

>>> sum(1 for (a, b) in zip(x, x.title()) if a != b)
3

但是请注意,只有标题大小写的字符串与原始字符串具有相同的长度时,此方法才有效。 例如,如果输入字符串包含ß ,它将不起作用,因为:

>>> 'ß'.title()
'Ss'

将每一行分隔成多个单词,然后比较一个单词是否大写并计数。

text = 'Enter a sample text:'
words = text.split()
count = 0
text_out = ''

for word in words:
    if word != word.capitalize():
        word = word.capitalize()
        count += 1
    text_out = text_out + ' ' + word

text_out = text_out.strip()
print(count)

编辑,有一种更好的方法是使用标题将每个字母大写。

text_out = text_out.title()
counter = 0
for i in range(len(txt)):
    if txt[i] != txt.title()[i]:
        counter += 1
print(counter)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM