Pythonで大文字・小文字を操作する文字列メソッド一覧
Pythonの文字列(str
)には、大文字・小文字を変換したり判定したりするメソッドが用意されている。
大文字か小文字かではなく、数字か英字かを判定したい場合は以下の記事を参照。
大文字と小文字を変換するメソッドの使い方
基本的な使い方
大文字と小文字を変換するメソッド全般の使い方を説明する。すべての文字を大文字にするupper()
メソッドを例とするが、そのほかのメソッドでも同じ。
便宜上「変換」と書いているが、Pythonにおいて文字列(str
)は更新不能(イミュータブル)なので、元の文字列自身は変更されない。
s_org = 'pYThon proGramminG laNguAge'
print(s_org.upper())
# PYTHON PROGRAMMING LANGUAGE
print(s_org)
# pYThon proGramminG laNguAge
変換した文字列を後で使う場合は、新たな変数に格納すればよい。
s_new = s_org.upper()
print(s_new)
# PYTHON PROGRAMMING LANGUAGE
文字列オブジェクトは更新不能だが、変数を新しいオブジェクトで上書きすることは可能。
s_org = s_org.upper()
print(s_org)
# PYTHON PROGRAMMING LANGUAGE
大文字と小文字の区別がない文字の扱い
数字や記号・ひらがな・カタカナ・漢字のような大文字と小文字の区別がない文字は変化なし。アルファベットのような大文字と小文字の区別がある文字は半角でも全角でも変換される。
例はupper()
だが、そのほかのメソッドでも同様。
s_org = 'Pyhon Python パイソン [123]'
print(s_org.upper())
# PYHON PYTHON パイソン [123]
upper(): すべての文字を大文字に変換
s_org = 'pYThon proGramminG laNguAge'
print(s_org.upper())
# PYTHON PROGRAMMING LANGUAGE
lower(): すべての文字を小文字に変換
s_org = 'pYThon proGramminG laNguAge'
print(s_org.lower())
# python programming language
capitalize(): 先頭の一文字を大文字、他を小文字に変換
s_org = 'pYThon proGramminG laNguAge'
print(s_org.capitalize())
# Python programming language
title(): 単語の先頭の一文字を大文字、他を小文字に変換
いわゆるタイトルケースへの変換。
s_org = 'pYThon proGramminG laNguAge'
print(s_org.title())
# Python Programming Language
swapcase(): 大文字を小文字に、小文字を大文字に変換
大文字と小文字を入れ替える。
s_org = 'pYThon proGramminG laNguAge'
print(s_org.swapcase())
# PytHON PROgRAMMINg LAnGUaGE
大文字と小文字を判定するメソッドの使い方
基本的な使い方
大文字と小文字を判定するメソッド全般の使い方を説明する。すべての文字が大文字かを判定するisupper()
メソッドを例とするがそのほかのメソッドでも同じ。
判定条件を満たせばTrue
、満たさなければFalse
を返す。
print('PYTHON'.isupper())
# True
print('Python'.isupper())
# False
大文字小文字の区別がない文字の扱い
数字や記号・ひらがな・カタカナ・漢字のような大文字と小文字の区別がない文字は無視して判定される。ただし、文字列がすべて区別のない文字の場合はFalse
となる。
print('[PYTHON 123]'.isupper())
# True
print('[123]'.isupper())
# False
アルファベットのような大文字と小文字の区別がある文字であれば全角でも判定される。
print('PYTHON'.isupper())
# True
print('Python'.isupper())
# False
isupper(): すべての文字が大文字かどうか判定
isupper()
は、大文字と小文字の区別がある文字が少なくとも一文字以上含まれていて、そのすべてが大文字のときはTrue
、それ以外はFalse
を返す。
print('PYTHON'.isupper())
# True
print('Python'.isupper())
# False
islower(): すべての文字が小文字かどうか判定
islower()
は、大文字と小文字の区別がある文字が少なくとも一文字以上含まれていて、そのすべてが小文字のときはTrue
、それ以外はFalse
を返す。
print('python'.islower())
# True
print('Python'.islower())
# False
istitle(): タイトルケースかどうか判定
istitle()
は、文字列がタイトルケース(単語の先頭の一文字が大文字、他は小文字)であればTrue
、そうでなければFalse
を返す。
print('Python Programming Language'.istitle())
# True
print('PYTHON Programming Language'.istitle())
# False
大文字と小文字の区別がない文字は無視されるので、小文字の前に区別がない文字しかないとFalse
となる。序数などで数字を含む場合は現実的にありえるので注意。
print('The 1st Team'.istitle())
# False
print('The 1St Team'.istitle())
# True