文字型データ-メソッド

1.記事の内容

 Python文字列型データの基礎について4回のシリーズで説明します。第3回目は、文字列型データで使えるメソッドについてです。

***わからない用語があるときは索引ページへ***

2.メソッドとは

 「メソッド」というのは、オブジェクトを操作するためのプログラミング言語の機能のことです。オブジェクトについては後ろの記事で詳しく説明しますので、ここでは、「メソッドとはデータを操作するプログラミング言語の機能である」くらいに覚えておいてください。
---以下、補足---
Pythonでは、データもオブジェクトとして扱います。つまり、文字列型データもオブジェクトなのです。
---補足ここまで---

3.メソッドの使い方

 以下は、文字列型データのメソッドである"replace"メソッドを使って説明します。replaceメソッドは、元の文字列の中で、最初に指定した文字列を、次に指定した文字列で置換するメソッドです。
 サンプルプログラム"mojiretsu_ex4.py"で、"2020年5月31日"の文字列を、"2020-05-31"に書き換えてみます。

##mojiretsu_ex4.py

str1 = "2020年5月31日"
print("元の文字列  :",str1)

str2 = str1.replace("年", "-")
str2 = str2.replace("5月", "05-")
str2 = str2.replace("日", "")
print("変換後の文字列:",str2)

サンプルプログラムをよく見るとreplaceメソッドの使い方がわかるのではないでしょうか。"mojiretsu_ex4.py"の実行結果は、下のようになります。

元の文字列  : 2020年5月31日
変換後の文字列: 2020-05-31

 メソッドについてまとめます。
 まずは書き方の規則について。
  <データ>.<メソッド名>(<引数1>, <引数2>,・・)
の規則で記述します。

str2 = str1.replace("年", "-")

 この式では元の文字列データがstr1、メソッド名は"replace"です。
 引数というのは、メソッドに渡すデータのことをいいます。引数は、「パラメータ」とよぶこともあります。
 replaceメソッドを利用するためには、2つの文字列型データを引数として渡します。1つめの引数は置換される文字列、2つめの引数は置換する文字列です。
 この式では、str1に含まれる文字列"年"を、文字列"-"に置換し、式の実行結果である"2020-5月30日"を変数str2に代入しています。
 replaceメソッドは、元のデータであるstr1を書き換えません。そこで、置換実行後の文字列は変数str2に代入しています。
 "mojiretsu_ex4.py"のプログラムを見て、元の文字列"2020年5月31日"が、"2020-05-31"に書き換わることをしっかり理解してください。 


 メソッドは定数の文字列データでも使うことができます。上の式は、

str2 = "2020年5月30日".replace("年", "-")

と書いても同じ結果となります。
 また、replaceメソッドの第1引数が元のデータに含まれない場合は、元のデータは変更されないまま式の実行結果が返されます。


 メソッドによっては、引数をとらないものもあります。引数をとらない場合は
  <データ>.<メソッド名>()
のように、()だけつけます。メソッドが引数をとらない場合も()を省略することはできません。

4.文字列型データで使えるメソッド

 文字列型データの主なメソッドを”mojiretsu_ex5.py"のサンプルコードで紹介します。

##mojiretsu_ex5.py

##1つめの引数の文字列を2つ目の引数の文字列で置換します
str1 = "Java3.6"
str2 = str1.replace("Java", "Python")
print("メソッド名  : replace")
print("元の文字列  :", str1)
print("変換後の文字列:", str2)
print("\n")


##最初の文字を大文字にし、残りを小文字にした文字列のコピーを返します
str1 = "python3.6"
str2 = str1.capitalize()
print("メソッド名  : capitalize")
print("元の文字列  :", str1)
print("変換後の文字列:", str2)
print("\n")

##大文字を小文字に変換した文字列のコピーを返します
str1 = "PYTHON3.6"
str2 = str1.lower()
print("メソッド名  : lower")
print("元の文字列  :", str1)
print("変換後の文字列:", str2)
print("\n")

##小文字を大文字に変換した文字列のコピーを返します
str1 = "python3.6"
str2 = str1.upper()
print("メソッド名  : upper")
print("元の文字列  :", str1)
print("変換後の文字列:", str2)
print("\n")

##左側の空白文字を取り除く
str1 = "     Python3.6"
str2 = str1.lstrip()
print("メソッド名  : lstrip")
print("元の文字列  :", str1)
print("変換後の文字列:", str2)
print("\n")

##右側の空白文字を取り除く
str1 = " Python3.6   "
str2 = str1.rstrip()
print("メソッド名  : rstrip")
print("元の文字列  :", str1+"|ここまで")
print("変換後の文字列:", str2+"|ここまで")
print("\n")

##両側の空白文字を取り除く
str1 = "      Python3.6   "
str2 = str1.strip()
print("メソッド名  : strip")
print("元の文字列  :", str1+"|ここまで")
print("変換後の文字列:", str2+"|ここまで")
print("\n")


##指定した文字列の出現回数を数える
str1 = "Pythonには、python2系とpython3系があります"
n = str1.count("python")
print("メソッド名  : count")
print("元の文字列  :", str1)
print('"python"の数 :', n)

"mojiretsu_ex5.py"の実行結果は次のようなものになります。

メソッド名  : replace
元の文字列  : Java3.6
変換後の文字列: Python3.6

メソッド名  : capitalize
元の文字列  : python3.6
変換後の文字列: Python3.6

メソッド名  : lower
元の文字列  : PYTHON3.6
変換後の文字列: python3.6

メソッド名  : upper
元の文字列  : python3.6
変換後の文字列: PYTHON3.6

メソッド名  : lstrip
元の文字列  :      Python3.6
変換後の文字列: Python3.6

メソッド名  : rstrip
元の文字列  :  Python3.6    |ここまで
変換後の文字列:  Python3.6|ここまで

メソッド名  : strip
元の文字列  :      Python3.6      |ここまで
変換後の文字列: Python3.6|ここまで

メソッド名  : count
元の文字列  : Pythonには、python2系とpython3系があります
"python"の数 : 2

 まだ記事で説明できていないプログラミング技術の機能も含まれていますが、こちらのPythonの公式ドキュメントに文字列型データの全てのメソッドが紹介されています。

前の記事へ 次の記事へ


この記事が気に入ったらサポートをしてみませんか?