文字列のWordがあるとします。
この文字列は、含まれる文字を変更できます。
例えばWord = "UPPER£CASe"
文字列をテストして、文字列内の文字が大文字でないかどうかを確認するにはどうすればよいですか。この文字列には大文字のみを使用し、他の句読点、数字、小文字などは使用できません。
str.isupper()
および str.isalpha()
functionを使用する必要があります。
例えば。
is_all_uppercase = Word.isupper() and Word.isalpha()
ドキュメントによると:
S.isupper() -> bool
True
のすべての大文字の文字が大文字で、S
に少なくとも1つの大文字の文字がある場合はS
を返し、そうでない場合はFalse
を返します。
正規表現を使用できます。
all_uppercase = bool(re.match(r'[A-Z]+$', Word))
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
または、キャラクターのレベルで作業することもできます。
次の機能は、単語だけでなくフレーズにも役立ちます。
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