Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
文字列.upper() / 文字列.lower() / 文字列.title()
文字列の大文字・小文字を変換するメソッドです。ユーザー入力の正規化や文字列比較の前処理に使われます。
構文
# 文字列をすべて大文字に変換します。 文字列.upper() # 文字列をすべて小文字に変換します。 文字列.lower() # 文字列の最初の文字だけ大文字、残りを小文字にします。 文字列.capitalize() # 単語の先頭文字を大文字、残りを小文字にします(タイトルケース)。 文字列.title() # 大文字を小文字に、小文字を大文字に入れ替えます。 文字列.swapcase()
関数一覧
| メソッド | 概要 |
|---|---|
| str.upper() | 文字列中のすべての英小文字を大文字に変換した新しい文字列を返します。 |
| str.lower() | 文字列中のすべての英大文字を小文字に変換した新しい文字列を返します。 |
| str.capitalize() | 文字列の最初の文字を大文字に、残りをすべて小文字に変換した新しい文字列を返します。 |
| str.title() | 各単語の先頭文字を大文字に、残りを小文字にした新しい文字列を返します。 |
| str.swapcase() | 大文字を小文字に、小文字を大文字に入れ替えた新しい文字列を返します。 |
サンプルコード
# upper() と lower() の基本的な使い方です。
text = "Hello, Python World!"
print(text.upper()) # HELLO, PYTHON WORLD!
print(text.lower()) # hello, python world!
# 大文字・小文字を無視して文字列を比較します。
user_input = "Yes"
if user_input.lower() == "yes":
print("承認されました。")
# パスワードの大文字・小文字を無視した比較(本来はハッシュ化が必要)。
command = "QUIT"
if command.upper() in ["QUIT", "EXIT", "Q"]:
print("終了します。")
# capitalize() の使い方です。
s1 = "hello world"
print(s1.capitalize()) # Hello world(最初の1文字だけ大文字)
s2 = "HELLO WORLD"
print(s2.capitalize()) # Hello world(残りはすべて小文字になります)
# title() でタイトルケースに変換します。
book_title = "the quick brown fox"
print(book_title.title()) # The Quick Brown Fox
# title() の注意点:アポストロフィの後も大文字になります。
name = "it's a wonderful life"
print(name.title()) # It'S A Wonderful Life('S が大文字になります)
# swapcase() で大文字と小文字を入れ替えます。
text2 = "Hello World"
print(text2.swapcase()) # hELLO wORLD
# 大文字・小文字の確認メソッドも便利です。
print("HELLO".isupper()) # True(すべて大文字)
print("hello".islower()) # True(すべて小文字)
print("Hello World".istitle()) # True(タイトルケース)
# 実用例:CSVのヘッダーを正規化します。
headers = [" NAME ", "AGE", "city", "EMAIL ADDRESS"]
normalized = [h.strip().lower().replace(" ", "_") for h in headers]
print(normalized) # ['name', 'age', 'city', 'email_address']
# ユーザー名の正規化です。
username = " Taro_YAMADA "
normalized_name = username.strip().lower()
print(normalized_name) # taro_yamada
概要
これらのメソッドはすべて新しい文字列を返します。元の文字列は変更されません(文字列はイミュータブルです)。大文字・小文字変換は英字のみに作用し、数字・記号・日本語などには影響しません。
文字列の大文字・小文字を無視した比較を行いたい場合は、両方を『lower()』で小文字にしてから比較するのが一般的です。より厳密な比較(ドイツ語の 'ß' など特殊文字を含む場合)には『casefold()』メソッドが推奨されます。『casefold()』は『lower()』よりも積極的に小文字化するため、国際化対応の比較に適しています。
文字列の書式整形(数値のフォーマットや文字列の幅揃えなど)については『str.format() / f文字列』を参照してください。文字列が特定のパターンで始まるか確認するには『str.startswith() / str.endswith()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。