Pythonで大文字・小文字を操作する文字列メソッド一覧

Modified: | Tags: 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

関連カテゴリー

関連記事