web-dev-qa-db-ja.com

文字列のいずれかの文字が大文字であるかどうかを確認しますPython

文字列のWordがあるとします。

この文字列は、含まれる文字を変更できます。

例えばWord = "UPPER£CASe"

文字列をテストして、文字列内の文字が大文字でないかどうかを確認するにはどうすればよいですか。この文字列には大文字のみを使用し、他の句読点、数字、小文字などは使用できません。

9
ffgghhffgghh

str.isupper() および str.isalpha() functionを使用する必要があります。

例えば。

is_all_uppercase = Word.isupper() and Word.isalpha()

ドキュメントによると:

S.isupper() -> bool

Trueのすべての大文字の文字が大文字で、Sに少なくとも1つの大文字の文字がある場合はSを返し、そうでない場合はFalseを返します。

20
Yash Mehrotra

正規表現を使用できます。

all_uppercase = bool(re.match(r'[A-Z]+$', Word))
4
Luke Yeager

Yash Mehrotra がその問題に対する最良の答えを持っていますが、純粋に教育的な理由から、メソッドなしでそれをチェックする方法も知りたい場合:

import string

def is_all_uppercase(a_str):
    for c in a_str:
        if c not in string.ascii_uppercase:
            return False
    return True
2
Diogo Martins

または、キャラクターのレベルで作業することもできます。

次の機能は、単語だけでなくフレーズにも役立ちます。

def up(string):
    upper=[ch for ch in string if ch.isupper() or ch.isspace()]
    if len(upper)==len(string):
        print('all upper')
    else:
        print("some character(s) not upper")

strings=['UPPERCAS!', 'UPPERCASe', 'UPPERCASE', 'MORE UPPERCASES']
for s in strings:
   up(s)
Out: some character(s) not upper 
Out: some character(s) not upper
Out: all upper
Out: all upper
0
SvGA