Pythonで大文字・小文字を変換する方法!upper()・lower()・capitalize()
生徒
「Pythonで文字を全部大文字にしたり、小文字にしたりすることってできますか?」
先生
「はい、できますよ。Pythonではupper()やlower()、capitalize()というメソッドを使って、文字の大文字や小文字を自由に変換できます。」
生徒
「メソッドって何でしたっけ?」
先生
「メソッドは、あるデータに対して特別な命令をするものです。今回は文字列に対して命令を出すメソッドですね。では順番に見ていきましょう!」
1. Pythonで文字を大文字に変換するupper()の使い方
Pythonで文字列をすべて大文字に変えたいときは、upper()メソッドを使います。アルファベットの小文字を大文字にしてくれる命令です。
text = "python programming"
print(text.upper())
PYTHON PROGRAMMING
このように、すべての英字が大文字に変換されます。日本語や数字はそのままです。
2. 小文字に変換するlower()の使い方
lower()メソッドを使うと、文字列をすべて小文字に変換することができます。
text = "HELLO World"
print(text.lower())
hello world
このように、すべての英字が小文字になります。
3. 最初の1文字だけ大文字にするcapitalize()の使い方
capitalize()メソッドは、文の最初の1文字だけを大文字にして、あとはすべて小文字にするメソッドです。
text = "python is fun!"
print(text.capitalize())
Python is fun!
英文を書くときなどに便利なメソッドです。
4. upper()・lower()・capitalize()は文字列専用
これらのメソッドはすべて「文字列専用」です。つまり、数値には使えません。
number = 123
# print(number.upper()) これはエラーになります
文字列であることが前提なので、文字として扱いたい場合はstr()で変換してから使います。
number = 123
print(str(number).upper())
5. 文字列の比較にも便利!大文字・小文字を無視する方法
ユーザーが入力した言葉と、あらかじめ用意した言葉を比べるとき、大文字と小文字が違うだけで一致しないことがあります。そのときは、両方をlower()やupper()にそろえてから比べると便利です。
word = input("yesかnoを入力してください:")
if word.lower() == "yes":
print("はいが選ばれました")
このようにすると、「YES」「Yes」「yEs」など、どんな大文字小文字でも「yes」として正しく処理できます。
6. capitalize()で日本語は変換されない
capitalize()は英語のようなアルファベットには効果がありますが、日本語の文字には影響がありません。
text = "こんにちは"
print(text.capitalize())
こんにちは
このように、日本語には大文字小文字の区別がないため、変化しないのです。
7. 応用編:複数の単語の先頭だけ大文字にするtitle()
title()メソッドは、文章の中にあるすべての単語の最初の文字だけを大文字にしてくれます。
text = "python is very fun"
print(text.title())
Python Is Very Fun
英文タイトルや見出しを作るときに役立ちます。
8. 大文字・小文字を一括で変換する実用例
たとえば、メールアドレスをすべて小文字にそろえたり、パスワードの大文字だけをチェックしたい場合にもこれらのメソッドが活用できます。
email = "UserName@Example.Com"
print(email.lower())
username@example.com
このように、統一された形にしておくことで、比較や保存がスムーズになります。
9. 練習問題:文字の変換をやってみよう
次の文字列をすべて大文字、小文字、最初の文字だけ大文字にしてみましょう。
text = "hello Python"
print(text.upper())
print(text.lower())
print(text.capitalize())
HELLO PYTHON
hello python
Hello python
それぞれのメソッドの違いを比べて、どんなときに使えばいいかを覚えておきましょう。
まとめ
Pythonで大文字や小文字の変換を行う方法として紹介してきたupper()、lower()、capitalize()は、文章処理やデータ整理、入力内容の正規化のような場面で非常に役立つ基本的なメソッドです。これらの操作を理解しておくことで、ユーザー入力を適切な形式にそろえたり、検索や比較を正確に行ったり、文章の見た目を整えて一貫性ある表現を維持したりと、多くの実践的なケースに対応できるようになります。特にWebアプリケーションやデータ分析の処理では、ユーザーが入力する文字列が一定の形式になっていないことが多いため、こうした大文字小文字の統一は欠かせない作業です。また、メールアドレスを小文字にそろえて比較したり、英文タイトルを整えるためにtitle()を使ったりするなど、さまざまな分野で頻繁に利用される機能でもあります。 文字列操作の基本として理解しておくべきポイントは、英語のアルファベットには大文字と小文字が存在する一方、日本語にはその区別がないため、capitalize()やtitle()は日本語には効果がないという点です。Pythonがどのように文字を扱っているのかを知ると、メソッドの動作にも納得感が生まれ、誤解なく使いこなせるようになります。また、変換メソッドはあくまで「文字列」に対する操作なので、数値に使うことはできません。必要に応じてstr()で文字列に変換し、そこから大文字小文字を調整するという手順も重要になります。 入力された単語を比較したいときにも、大文字小文字をそろえることは非常に有効です。たとえば「YES」「Yes」「yEs」のように大文字小文字が混ざっている場合でも、lower()でそろえて比較すれば意図した判断ができます。これは実際のユーザー入力ではよくあるケースで、大小文字を気にしない柔軟性は、使いやすいシステムを作るうえで欠かせません。特に、アンケート回答やテキスト入力フォーム、コマンド入力形式のプログラムでは、入力のゆれを吸収できるこの仕組みが大いに役立ちます。 さらに、文章やタイトルのフォーマットを整える場面では、capitalize()やtitle()がとても便利です。ブログタイトルを作ったり、文章の先頭だけ整えたり、複数の単語の頭文字を整えて見た目を良くするなど、文章の品質を上げたいときに重宝します。Pythonはこうした処理を簡単なメソッドで実現できるため、複雑なコードを書く必要がありません。初学者でも直感的に使える点は、大きなメリットと言えます。コードを書く作業に慣れてくると、文章の整形や正規化を自動で行うちょっとしたスクリプトを書くことが多くなり、これらのメソッドが自然と身についていきます。 また、今回紹介したupper()、lower()、capitalize()、title()は組み合わせて使うことで、より柔軟で高度な文字列処理が可能になります。例えば、複数の入力を一定の形式に変換してからデータベースに保存する処理や、比較する前に必ずlower()を適用して誤解を防ぐ処理、文章の整形を行うスクリプトなど、あらゆる用途で役立つでしょう。こうした基本的な文字列操作こそ、Pythonの実践力を高めるうえで非常に価値があります。
サンプルコード:まとめとして使える文字列変換の総合例
text = "Python programming Is FUN!"
# すべて大文字
print(text.upper())
# すべて小文字
print(text.lower())
# 最初の1文字だけ大文字
print(text.capitalize())
# 単語ごとの先頭を大文字に
print(text.title())
# 入力の比較に使う例
user_input = "YES"
if user_input.lower() == "yes":
print("はいと判断されました")
このサンプルでは複数の変換メソッドをまとめて確認でき、基本操作を復習しながら実際の処理でもそのまま応用できます。大文字と小文字の変換は、プログラムの質を高め、利用者にとっても扱いやすい仕組みを作るために欠かせない技術です。
生徒
「今日の内容で、大文字と小文字の変換ってかなりいろんな場面で役に立つんだなって感じました!」
先生
「そうですね。文章や入力内容を整える処理では欠かせませんし、検索や比較の精度も上げてくれます。特にlower()を使って文字をそろえるテクニックは多くのプログラムで使われていますよ。」
生徒
「title()やcapitalize()は文章の見た目を整えるのに便利でした。実際のブログ作成とかでも使えそうです!」
先生
「まさにそのとおりです。文章処理を自動化するときに大きな力を発揮します。Pythonのこうした機能を覚えていくことで、自分で作れるものの幅がどんどん広がりますよ。」
生徒
「今日の学びを使って、入力を正規化するプログラムを作ってみようと思います!」