Pythonの文字列メソッド徹底解説:初心者向けステップバイステップガイド
Pythonには、文字列専用に使えるメソッドが数多く用意されています。代表的なものとしては、upper()、lower()、capitalize()、title()などが挙げられます。これらの文字列メソッドを使いこなせるようになると、文字列の操作や編集が格段に楽になります。
文字列(string)は、プログラミングにおける最も基本的なデータ型のひとつで、コンピュータがテキストを扱うための仕組みです。たとえば、ユーザーの名前やメールアドレスを保存する際に文字列が使われます。
Pythonには、文字列を変更・操作するための組み込みメソッドがいくつも用意されており、ライブラリをインポートすることなくすぐに利用できます。
このチュートリアルでは、Pythonでよく使われる主要な文字列メソッドを取り上げ、具体的なコード例とともにその使い方を解説します。
文字列のおさらい
文字列はテキストを格納するためのもので、Pythonではシングルクォート ' ' またはダブルクォート " " で囲んで宣言します。どちらを使っても構いませんが、プログラム全体でどちらかに統一することが推奨されます。以下は文字列を宣言する例です。
"This is an example string in Python."
print()関数を使えば、文字列を出力できます。
print("This is an example string!")
実行結果:
This is an example string!
文字列の連結
複数の文字列をつなげて新しい文字列を作りたい場合は、「文字列連結」と呼ばれる操作を行います。Pythonでは + 演算子を使って文字列を結合できます。
print("Example" + "String")
実行結果:ExampleString
このように、文字列を結合してもスペースは自動的に挿入されません。スペースを入れたい場合は、あらかじめ空白文字を含めておく必要があります。
文字列の基本がわかったところで、次はPythonの文字列メソッドを見ていきましょう。
大文字・小文字への変換
Pythonで最もよく使われる文字列メソッドのひとつが、文字列を大文字または小文字に変換する機能です。upper()とlower()は、元の文字列内のすべての英字をそれぞれ大文字・小文字に変換した新しい文字列を返します。
なお、これらのメソッドを実行しても元の文字列自体は変更されず、変換後の文字列が新しく返される点に注意してください。
以下はupper()メソッドで文字列を大文字に変換する例です。
string_example = "String Example" print(string_example.upper())
実行結果:
STRING EXAMPLE
小文字に変換したい場合は、lower()メソッドを使用します。
print(string_example.lower())
実行結果:
string example
さらに、capitalize()メソッドを使うと文字列の先頭文字だけを大文字にでき、title()メソッドを使うと各単語の先頭文字をすべて大文字にできます。
これらのメソッドは、文字列同士を比較するときに表記ゆれを防ぎたい場合にも役立ちます。Pythonの比較は大文字と小文字を区別するためです。たとえば、ユーザーが入力したメールアドレスを小文字に変換してから、登録済みのアドレスと比較するといった使い方が考えられます。
文字列の長さを取得する
文字列を扱っていると、その長さ(文字数)を知りたい場面が出てきます。len()関数を使うと、文字列に含まれる文字数を取得できます。
たとえば、フォームの入力欄に最小文字数や最大文字数の制限を設けたい場合に便利です。メールアドレスを50文字以内に制限したいなら、len()で文字数を調べ、50文字を超えていたらエラーを表示する、という処理が実現できます。
以下は文字列の長さをチェックするプログラムの例です。
string_length = "What is the length of this string?" print(len(string_length))
実行結果:34
このコードでは、変数string_lengthに文字列を格納し、次の行でlen(string_length)によって文字数を取得し、print()でコンソールに出力しています。
なお、len()は文字列内のすべての文字をカウントします。英字・数字だけでなく、空白文字も1文字として数えられる点に注意しましょう。
真偽値(Boolean)を返す文字列メソッド
Pythonには、真偽値(True / False)を返す文字列メソッドも多数あります。これらは、文字列の性質を調べたいときに便利です。たとえば「文字列がすべて大文字か」「数字のみで構成されているか」などを簡単に判定できます。
条件を満たした場合にTrueを返す主なメソッドは以下の通りです。
str.isupper():英字がすべて大文字であるstr.islower():英字がすべて小文字であるstr.istitle():タイトルケース(各単語の先頭が大文字)であるstr.isspace():空白文字のみで構成されているstr.isnumeric():数値文字のみで構成されているstr.isalnum():英数字のみで構成されている(記号を含まない)str.isalpha():英字のみで構成されている(数字や記号を含まない)
いくつか実際に試してみましょう。まずはisupper()メソッドで、文字列がすべて大文字かどうかを確認する例です。
full_name = "JOHN APPLESEED" print(full_name.isupper())
実行結果:True
変数full_nameの値はすべて大文字で書かれているため、isupper()はTrueを返します。
同様に、istitle()メソッドを使うと、文字列がタイトルケースかどうかを判定できます。
sentence = "This is a sentence." print(sentence.istitle())
実行結果:False
この文字列は各単語の先頭が大文字になっていないため、istitle()はFalseを返します。
真偽値を返すメソッドは、ユーザー入力のバリデーションや、2つの値が厳密に一致するかどうかの確認などに活用できます。
startswith()とendswith():前方一致・後方一致の判定
ある文字列が特定の値で始まる、あるいは終わるかどうかを確認したいことがあります。たとえば、ユーザーの名前が「F」で始まるかどうかをチェックしたい場合などです。こうした処理には、startswith()とendswith()メソッドが使えます。
startswith()は文字列が指定した値で始まる場合にTrueを、endswith()は指定した値で終わる場合にTrueを返します。条件を満たさない場合はFalseが返されます。
どちらのメソッドも3つの引数を受け取れます。第1引数は検索したい値です。省略可能な第2引数では検索開始位置(インデックス)、第3引数では検索終了位置(インデックス)を指定できます。
以下はstartswith()メソッドの使用例です。
full_name = "Bill Jefferson"
print(full_name.startswith("Bill"))
実行結果:True
今度は、4文字目以降(インデックス3以降。インデックスは0から始まるため)に「Bill」が現れるかどうかを確認してみます。
full_name = "Bill Jefferson"
print(full_name.startswith("Bill", 3))
実行結果:False
インデックス3以降に「Bill」は存在しないため、Falseが返されました。
split()とjoin():文字列の分割と結合
Pythonでは、join()とsplit()メソッドを使って文字列を柔軟に操作できます。
join()メソッドは、イテラブル(反復可能オブジェクト)の各要素を、指定した文字列でつなげて1つの文字列にします。以下はjoin()の使用例です。
string = "String" "X".join(string)
実行結果:SXtXrXiXnXg
このコードでは、join()が変数string内の各文字を順番に処理し、各文字の間に「X」を挿入しています。
join()は、リスト内の複数の文字列を1つにまとめたいときによく使われます。以下は、名前のリストをカンマ区切りの1つの文字列に結合する例です。
print(",".join(["Lucy", "Emily", "David"]))
実行結果:Lucy,Emily,David
これで、名前のリストが配列ではなく1つの文字列になりました。
逆に、split()メソッドを使うと、文字列を分割して文字列のリストを取得できます。以下は、文章を単語ごとに分割する例です。
example_sentence = "This is a sentence." print(example_sentence.split())
実行結果:
['This', 'is', 'a', 'sentence.']
元の文字列が4つの要素に分割され、新しいリストが作成されました。
split()は、引数を指定しない場合は空白文字で文字列を分割します。別の文字で分割したい場合は、区切り文字を引数として渡せます。以下は、カンマを基準に文字列を分割する例です。
names = "Lucy,Emily,David"
print(names.split(","))
実行結果:
['Lucy', 'Emily', 'David']
このように、元の文字列がカンマを基準に分割され、それぞれの値を持つリストが生成されました。
まとめ
文字列は、プログラム内でテキストを扱うために欠かせないデータ型です。このチュートリアルでは、Pythonの組み込み文字列メソッドの中でも特によく使われるものを紹介しました。
具体的には、大文字・小文字を変換するupper()とlower()、文字数を取得するlen()、真偽値を返す一連のis系メソッド、そしてjoin()とsplit()による文字列の結合・分割、さらにstartswith()とendswith()による部分文字列の判定方法まで解説しました。
ほかにもljust()、rjust()、zfill()など便利な文字列メソッドはまだまだあります。この記事はその入り口にすぎません。ぜひ実際にコードを書きながら、Pythonでの文字列操作をマスターしていってください!
-
Pythonインタープリターとは?仕組みと初心者向けオンライン環境を徹底解説
Pythonは学びやすいプログラミング言語として知られています。その理由のひとつが、自分のマシンに正しいバージョンのPythonをインストールしなくても、オンラインで利用できるPythonインタープリターが数多く存在する点です。本記事では、Pythonインタープリターの仕組みについて解説し、初心者にも使いやすい人気のオンラインインタープリターをご紹介します。 Pythonプログラムはどのように実行されるのか? PythonはJavaと同様に、純粋なインタプリタ言語ともコンパイラ言語とも分類できず、両方の性質を併せ持っています。 ここでいう「コンパイル」とは、特定のプラットフォームに依存し
-
PythonのUnicode文字列とは?uプレフィックスの使い方をわかりやすく解説
Pythonでは、通常の文字列は内部的に8ビットのASCIIとして保存されます。一方、Unicode文字列は16ビットのUnicodeとして保存され、世界中のほとんどの言語に含まれる特殊文字など、より多様な文字セットを扱うことができます。 ここでは、Unicode文字列の基本的な使い方について、以下のポイントに絞って解説します。 Unicode文字列の基本 PythonでUnicode文字列を定義するには、文字列の前に u プレフィックスを付けます。これは、raw文字列(エスケープシーケンスを無効化する文字列)に r プレフィックスを付けるのと同じ考え方です。 サンプルコード #!/usr/b