【Python初心者】関数とメソッド【リスキリング】

Programming
スポンサーリンク

 

Pythonを勉強するために本を買ったけど,積読してる.
最初の方の数値や算術演算,文字列,変数で止まっている.
関数やメソッドはたくさんあるけど,よく使う関数やメソッドのまとめが欲しい.
「組み込み関数」「組み込みメソッド」という言葉を知らない.

 

 そんな方が,関数とメソッドを理解するための記事です.
 

本記事の内容

 

 いよいよ,プログラミングっぽい操作である,関数,メソッドについて解説します.Pythonには,あらかじめ用意された関数とメソッドがあり,それぞれ「組み込み関数」,「組み込みメソッド」と呼ばれています.関数とメソッドを自分で作成することもできますが,本記事では,「組み込み関数」と「組み込みメソッド」について紹介します.これらの使い方に慣れることを本記事の目標とし,これまでの記事と同様に,コードを打ちながら学んで行きましょう.
 

Pythonの文法基礎から実務的な分析・機械学習まで学べるオンライン学習サービス(1週間無料です)

 

 

スポンサーリンク

関数とメソッドとは


 いずれもデータを操作する機能です.これまでの記事でもいくつか紹介してきました.例えば,数値や文字列などのオブジェクトの型を調べたり,変換したり,メモリ内の所在を調べたりといった操作です.ただし,関数とメソッドの定義,違いはかなりややこしい話なので,ここでは,書き方と使い方を知ってもらえればと思います.
 

関数の使い方

 関数名の後に()をつけて,必要に応じて引数を記述して使います.引数が複数ある場合は,カンマ区切りで並べます.

関数名(引数1, 引数2, 引数3,・・・)

 引数は,関数に渡す値です.オブジェクトを指定します.関数を利用することを 「関数を呼び出す」 と言い,()は関数呼び出しを意味します.実行後に出力される結果を,戻り値または返り値と呼びます.
 

メソッドの使い方

 操作したいオブジェクトの後に,ピリオドとメソッド名と()をつけて,必要に応じて引数を記述して使います.引数が複数ある場合は,カンマ区切りで並べます.

オブジェクト.メソッド名(引数1, 引数2, 引数3,・・・)

 メソッドは関数の一種であり,『ある対象(オブジェクト)に「付属する機能」』とか『クラス用の「関数」』と捉えることができます.
 Pythonでは,数値や文字列を「オブジェクト」と考え,それらの型のことを「クラス」と呼びましたね.int, float, complexは,pythonであらかじめ準備された組み込みデータ型(組み込みクラス)です.クラスには,そのオブジェクトにさまざまな処理を行う機能(メソッド)が定義されています.組み込みクラスに付属しているので,「組み込みメソッド」と呼ぶことがあります.
 

メソッドチェーン

 複数のメソッドを使う場合には,ピリオドでメソッドをつなげて記述します.

オブジェクト.メソッド名(引数1, 引数2, 引数3,・・・).メソッド名(引数1, 引数2, 引数3,・・・)

 

スポンサーリンク

組み込み関数をまとめました


よく使う組み込み関数をピックアップしました.
 

組み込み関数まとめの表

オブジェクトの確認や変換

関数 機能
type() オブジェクトの型を返す.
len() 文字列の長さ,リストやタプルの要素数を返す.
id() オブジェクトのidを返す.
dir() オブジェクトの属性を返す.
int() 数値をint型に変換
float() 数値,または10進数の文字列をfloatに変換
str() オブジェクトを文字列に変換
str() オブジェクトを文字列に変換
bool() bool型のオブジェクトを返す.空、0、NoneはFalseを返す.
list() タプルをリストに変換
tuple() リストをタプルに変換
set() リストやタプルを集合に変換
hex() 16進数を返す.
oct() 8進数を返す.
bin() 2進数を返す.

 

数値の操作

関数 機能
abs() 絶対値を返す.
divmod(a, b) a割るbの商と剰余を返す.
sum() 合計を返す.
max() 最大値を返す.
min() 最小値を返す.
pow(a, b) aのb乗を返す.
range() 指定範囲の整数列を返す.
round() 値を四捨五入する.第2引数は有効数字

 

シーケンス(文字列・リスト・タプル)の操作

関数 機能
input() 文字列を入力する.(入力値は文字列扱い)
enumerate() リストやタプルなどのイテラブルオブジェクトの要素とインデックス番号を返す.
sorted() 要素を昇降順に並び替える.

 

 そのほかにも,たくさんの組み込み関数が用意されています.引数に何を置くことができるのかについても詳しく書かれているので,困った時は参照してください.
https://docs.python.org/ja/3/library/functions.html
 

組み込み関数の使用例

 ここまでの記事で紹介したオブジェクト(数値や文字列)で,例を列挙してみます.具体的なオブジェクトを引数としていますが,変数を引数としても,同様の戻り値が出力されるので,試してみましょう.
 

len("円周率 π=3.14…🥺")
12

 

circle = "円周率 π=3.14…🥺"
len(circle) #変数でも同様に操作できます.
12

 

divmod(100, 3) # 100割る3の商と剰余を返す.
(33, 1)

 

max(-100, 1, 10, 100)
100

 

a = -100
b = 1
c = 10
d = 100
max(a, b, c, d)
100

 

input("入力フォームはこちら:") #実行すると,「入力フォームはこちら:」の後に入力欄が表示されます.入力した値が戻り値になります.
‘入力したで!’

 

スポンサーリンク

組み込みメソッドをまとめました


 よく使う組み込みメソッドをピックアップしました.
 

組み込みメソッドまとめの表

文字列の操作

メソッド 機能
.capitalize() 最初の文字を大文字に,その他を小文字にする.
.close() ファイルを閉じる.
.count() 指定した文字が,文字列のなかにいくつあるか返す.
.find() 文字列のスライス内の部分文字列の最小のオフセットを返す.
.format() {}内を()内で置き換える
.index() 指定した文字が現れる位置のオフセットを返す.
.lower() 小文字に変換する.
.read() ファイル内のテキストを読み込む.
.upper() 大文字に変換する.
.replace(a, b) 文字列aを文字列bに置き換えて返す.
.split() 文字列を特定の文字で分割し,リストで返す.
.sprit() 先頭や末尾の文字,特にスペースを削除する.
.translate(a.maketrans(b, c)) aの中の文字列で,bをcに置き換える.
.join() 文字列を連結する.

 

シーケンス(リスト・タプル)の操作

メソッド 機能
.append() リストの末尾に要素を追加する.
.clear() リストと辞書において、すべての要素を削除する.
.copy() リストの配列を新しいリストにコピーする.
.count() ある要素がリストやタプルにいくつ含まれるか数える.
.extend() リストの末尾にシーケンス(リスト,タプル,辞書)を追加する.
.index() 指定した要素のオフセットを返す.
.insert() リストに要素を追加する.
.pop() リストと辞書において、指定したインデックスの要素を1つだけ抜き出す.
.remove() 指定した値と同じ要素を検索し,最初の要素を削除する.要素自体が書き換わる.
.reverse() リスト要素の順番を逆にする.
.sort() 要素を昇降順に並び替え,その並びに書き換える.

 

辞書の操作

メソッド 機能
.keys() 辞書のkeyについてループ処理する.
.values() 辞書のvalueについてループ処理する.
.items() 辞書のkeyとvalueについてループ処理する.

 

組み込みメソッドの使用例

 ここまでの記事で紹介したオブジェクト(文字列)で,例を列挙してみます.
 

shelf_py="棚からPython"
shelf_py.replace("棚から", "Hello ") #"棚から"を"Hello"に置換します.
Hello Python

 

gene="atcg"
gene.upper()
ATCG

 

gene='\nATCG\t'
gene.strip() #引数を指定しない場合,空白,\t,\nを削除します.
ATCG

 

#メソッドチェーンです.
gene='\nATCG\t'
gene.strip().lower() #空白,\nを削除し,さらに全体を小文字にします.
atcg

 

メソッドの一覧を出力する

 
 dir()関数を用いて,対象のオブジェクトで使えるメソッドを一覧に表示することもできます.

dir(str)  #文字列のメソッドの一覧が表示出力されます.
[‘__add__’,
‘__class__’,
‘__contains__’,
‘__delattr__’,
‘__dir__’,
‘__doc__’,
‘__eq__’,
‘__format__’,
‘__ge__’,
‘__getattribute__’,
‘__getitem__’,
‘__getnewargs__’,
‘__gt__’,
‘__hash__’,
‘__init__’,
‘__init_subclass__’,
‘__iter__’,
‘__le__’,
‘__len__’,
‘__lt__’,
‘__mod__’,
‘__mul__’,
‘__ne__’,
‘__new__’,
‘__reduce__’,
‘__reduce_ex__’,
‘__repr__’,
‘__rmod__’,
‘__rmul__’,
‘__setattr__’,
‘__sizeof__’,
‘__str__’,
‘__subclasshook__’,
‘capitalize’,
‘casefold’,
‘center’,
‘count’,
‘encode’,
‘endswith’,
‘expandtabs’,
‘find’,
‘format’,
‘format_map’,
‘index’,
‘isalnum’,
‘isalpha’,
‘isascii’,
‘isdecimal’,
‘isdigit’,
‘isidentifier’,
‘islower’,
‘isnumeric’,
‘isprintable’,
‘isspace’,
‘istitle’,
‘isupper’,
‘join’,
‘ljust’,
‘lower’,
‘lstrip’,
‘maketrans’,
‘partition’,
‘removeprefix’,
‘removesuffix’,
‘replace’,
‘rfind’,
‘rindex’,
‘rjust’,
‘rpartition’,
‘rsplit’,
‘rstrip’,
‘split’,
‘splitlines’,
‘startswith’,
‘strip’,
‘swapcase’,
‘title’,
‘translate’,
‘upper’,
‘zfill’]

 

 今回は,これまでの記事で学んだデータ型を用いた組み込み関数,組み込みメソッドを例としてコードを書いてもらいました.今回扱わなかったものも,今後の学んでいくデータ型や制御構文などの記事の中で扱っていきます.
次回から,複数回に渡り複合データについて学びましょう!

【Python初心者】リスト【リスキリング】
Pythonを勉強するために本を買ったけど,積読,挫折していませんか?リストの操作について,基本から分かりやすく解説しています.Pythonを学びたい方、学び直したい方、より深く学びたい方は,ぜひご一読ください.

最後まで読んでくださり,ありがとうございます☺️
 

タイトルとURLをコピーしました