PR

Pythonの属性とメソッド

python
記事内に広告が含まれています。

Pythonでは、数値であれ、単語であれ、リストであれ、関数であれ、すべてがオブジェクトとして扱われます。

Python における属性とメソッドとは?

直感的には、これらのオブジェクトは実際のオブジェクトのように振る舞います。つまり、数値やテキストのようなデータは、それぞれ独自の属性(プロパティのようなもの)とメソッド(アクションのようなもの)を持っています。

オブジェクトの性質を理解するために、例として "本 "を想像してみてください。

属性(プロパティ): 本には「タイトル」「著者」「出版年」「ページ数」などの属性があります。これらの属性情報は「プロパティ」と呼ばれます。

メソッド(アクション):本は「開く」「閉じる」「ページをめくる」等のアクションがあります。 つまり、「メソッド」はオブジェクトの動作を表します。

オブジェクトには他にもたくさんの特徴がありますが、現段階では、オブジェクトには属性とメソッドがあることを理解することが重要です。

そして、オブジェクトは互いに関係を持っている。例えば、本は著者によって作られる。したがって、オブジェクト "book "と "author "の間には 関係があることを理解しておきましょう。

早速、いくつかの例を見てみよう:

# Define an object with attributes
book = {
    "title": "python for beginners",
    "year": 2024,
    "author": "Tom Smith"
}

# Accessing attributes of the object
print(book["title"])
print(book["year"])

# Example of an object with method
print(book["author"].upper())  # Method: convert the string to uppercase

メソッドと関数の違い

オブジェクトのメソッドは、Pythonで実行できる命令に相当します。また関数も命令です。では、「関数」と「メソッド」の違いは何でしょうか?

print()やinput()のような「関数」は次のように記述します。

関数名(引数)

これに対して「メソッド」は次のように記述します。

オブジェクト.メソッド名(引数)

違いは、ドット(・)の有無です。関数はPythonが提供するものなので、単純に関数名だけを指定することもできます。しかし、メソッドはオブジェクトのプロパティなので、「オブジェクトのメソッドを実行する」という形で書かなければなりません。

文字列メソッド

Pythonの文字列にはさまざまな組み込みメソッドがあり、それを使って文字列に対してさまざまな処理を行うことができます。基本的なメソッドをいくつか見てみましょう。

文字を大文字と小文字に変換する

lower()メソッドは文字列内のすべての文字を小文字に変換し、upper()メソッドはすべての文字を大文字に変換します。これらのメソッドの使い方を示す例を以下に示す:

text = "Hello World"
print(text.lower()) # Convert all letters to lowercase
print(text.upper()) # Convert all letters to uppercase
print(text)

出力:

hello world
HELLO WORLD
Hello World

注意すべき点は、これらのメソッドを呼び出しても、元の文字列(テキスト)は変更されないということです。上の例でも最後のprint(text)の出力は変化がないことが確認できますね。その代わりに、希望する変換を施した新しい文字列を作成します。この特性は、非破壊メソッドとして知られています。

text = "Hello World"
text = text.lower()  # Convert all letters to lowercase
print(text) 

text = text.upper()  # Convert from lowercase to uppercase
print(text) 

出力:

hello world
HELLO WORLD

上記のコードでは、まず文字列 text を小文字に変換して元の変数 text に格納する。次に、text はさらに大文字に変換され、再び text に格納される。最後に、文字列 text は大文字になります。

このように非破壊メソッドでも、元の文字列に代入すれば変更されます。

文字列の検索

文字列内の特定の文字や部分文字列を見つけるには、 find() メソッドを利用することができます。

text = "Hello World"
index = text.find("e")
print(index) 

出力:

1

この例では、find() メソッドは文字列 "Hello World" の中から文字 "e" を探し、そのインデックスを返す。今回は2文字目に"e"が見つかったので、出力では1が返されました(※2ではないですよ)。pythonや他の多くのプログラミング言語ではインデックス番号は0(ゼロ)からはカウントしますね。

もし文字が見つからなかった場合は -1 を返します。

文字列の置換

文字列内の「ある文字列」を「別の文字列」に置換する必要がある場合は、 replace() メソッドが便利です。

text = "It is a sunny day."
replaced_text = text.replace("sunny", "rainy")
print(replaced_text) 

出力:

It is a rainy day.

replace()メソッドは、指定した文字列を別の文字列に置き換えます。

文字列のトリミング

文字列から先頭と末尾の空白を取り除くには、 strip() メソッドを使用します。

text = "   Hello World   "
trimmed_text = text.strip()
print(trimmed_text)

出力:

Hello World

この操作により、文字列の先頭と末尾から余計な空白が取り除かれます。

文字列に変数を埋め込む

Python では、 format() メソッドか f-strings を使って、文字列の中に変数の値を直接埋め込むことができます。

format() メソッドの使い方

name = "Tom"
age = 25
text = "My name is {} and I am {} years old.".format(name, age)
print(text)

出力:

My name is Tom and I am 25 years old.

format()メソッドは、引数として与えられた値を、指定された順番で文字列内の{}に挿入します。

f-stringsの使い方

name = "Tom"
age = 25
text_f = f"My name is {name} and I am {age} years old."
print(text_f)

出力:

My name is Tom and I am 25 years old.

f-stringsでは、文字列の先頭にfをつけ、変数名を{}の中に入れることで、変数の値を直接埋め込むことができます。

これらの方法を利用することで、文字列に変数の値を簡単に組み込むことができます。

まとめ

この記事では、Python における属性とメソッドの基本的な概念について説明しました。 また、Python初心者のために、文字列の検索、置換、トリミング、変数値の埋め込みなどの基本的な文字列メソッドを紹介しました。メソッドは数多くあり、それらを使いこなすことで Python でのプログラミング能力を大きく向上させることができますので、焦らずに少しずつ学習していきましょう。

コメント