Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのisupper()・islower()・upper()・lower()メソッドの使い方を徹底解説

本記事では、Python 3.x(およびそれ以前のバージョン)で利用できる文字列操作メソッドである isupper()islower()upper()lower() の4つについて、具体例を交えながらわかりやすく解説します。

4つのメソッドの概要

これらはすべて文字列(str型)に対して使用できる組み込みメソッドで、Python標準ライブラリに含まれています。それぞれの役割は以下の通りです。

  • isupper():文字列内の英字がすべて大文字かどうかを判定し、真偽値(True / False)を返す
  • islower():文字列内の英字がすべて小文字かどうかを判定し、真偽値(True / False)を返す
  • upper():文字列内の英字をすべて大文字に変換した新しい文字列を返す
  • lower():文字列内の英字をすべて小文字に変換した新しい文字列を返す

いずれのメソッドも引数を受け取りません。isupper()islower() はブール値を返すのに対し、upper()lower() は変換後の文字列を返すという点が大きな違いです。

実行例

それでは、実際のコードで動作を確認してみましょう。

string = 'tutorialspoint'

# 英字がすべて大文字かどうかを判定
print(string.isupper())

# 英字がすべて小文字かどうかを判定
print(string.islower())

# すべて大文字に変換
print(string.upper())

# すべて小文字に変換
print(string.lower())

実行結果

False
True
TUTORIALSPOINT
tutorialspoint

解説

サンプル文字列 'tutorialspoint' はすべて小文字で構成されているため、isupper()False を、islower()True を返します。また、upper() を呼び出すと全アルファベットが大文字に変換され、lower() を呼び出すと元の小文字のままの文字列が返されます。

なお、これらのメソッドに引数を渡すと、インタプリタがエラー(TypeError)を発生させるので注意してください。

数字や記号が含まれる場合の挙動

文字列に数字や記号が含まれている場合でも、エラーにはなりません。英字以外の文字はそのまま維持され、英字部分だけが大文字・小文字に変換されます。また、判定系メソッドの場合、英字以外の文字は判定対象外となるため、たとえば 'ABC123!'.isupper()True を返します。

mixed = 'Python3.9!'

print(mixed.upper())   # PYTHON3.9!
print(mixed.lower())   # python3.9!
print('ABC123!'.isupper())  # True

まとめ

本記事では、Python 3.xで使える isupper()islower()upper()lower() の4つの文字列メソッドについて学びました。判定系メソッドは真偽値を、変換系メソッドは変換後の文字列を返し、どれも引数不要で手軽に使えるのが特徴です。ユーザー入力の正規化や大文字小文字を区別しない比較処理など、実務でも頻繁に活用される基本メソッドなので、ぜひマスターしておきましょう。

  1. 組み込み関数を使わずにPythonで大文字・小文字の文字数をカウントする方法

    はじめに 本記事では、以下の問題に対する解決策について詳しく解説します。 問題文 文字列が与えられたとき、組み込みの文字判定関数を使用せずに、その文字列に含まれる大文字と小文字の数をそれぞれカウントする必要があります。 通常、この問題はPythonに標準で用意されている islower() や isupper() を使えば簡単に解決できます。しかし今回は「これらの文字判定関数を使わない」という制約があるため、文字のASCIIコード値を活用したアプローチを採用します。 ord() 関数を使うことで、文字列内の各文字のASCIIコード値を取得できます。取得した値が小文字の範囲(97〜122)

  2. 組み込み関数を使わずに大文字・小文字をカウントするPythonプログラム

    この記事では、文字列に含まれる大文字と小文字の数を数える問題を、組み込みの文字判定メソッドに頼らずに解くための考え方と実装方法を解説します。 問題の概要 文字列が入力として与えられたとき、その中に含まれる大文字の数と小文字の数をそれぞれ求める必要があります。 ここでは、isupper() や islower() のような文字判定メソッドは使わず、組み込み関数 ord() を利用して各文字のASCII値を調べることで判定を行います。 ASCII値による判定の考え方 ASCIIコードでは、英字は次のような範囲に割り当てられています。 小文字(a〜z):97〜122 大文字(A〜Z):65〜90