40

文字列内の大文字を数える方法を理解しようとしています。

小文字しか数えられませんでした:

def n_lower_chars(string):
    return sum(map(str.islower, string))

私が達成しようとしていることの例:

Type word: HeLLo                                        
Capital Letters: 3

上記の関数を反転しようとすると、エラーが発生します。

def n_upper_chars(string):
    return sum(map(str.isupper, string))
4

8 に答える 8

67

sumジェネレーター式、およびを使用してこれを行うことができますstr.isupper

message = input("Type word: ")

print("Capital Letters: ", sum(1 for c in message if c.isupper()))

以下のデモンストレーションを参照してください。

>>> message = input("Type word: ")
Type word: aBcDeFg
>>> print("Capital Letters: ", sum(1 for c in message if c.isupper()))
Capital Letters:  3
>>>
于 2013-08-08T15:20:06.563 に答える
14

使用できますre

import re
string = "Not mAnY Capital Letters"
len(re.findall(r'[A-Z]',string))

5

于 2015-06-25T08:05:14.640 に答える