Pythonで関数を定義する、自作する方法/defの使い方

IT

defを使うと、Python上で使用できる関数(決まった処理を行って戻り値を返す処理。メソッドと違いオブジェクトに付かない)を定義することができます。Define(定義)の略です。

スポンサーリンク

def

やりかたですが、まずdefと記述してその後に関数名を指定します。
次に()の中に引数(扱う値。名前はなんでもいい)を指定し、
:を打って改行すると自動でインデントがつく(ブロックになる)ので、
引数にどういう処理をして戻り値にしたいのかを、returnの後で定義します。
#python
def abc(a):
    return a+1
変数 = abc(1)
print(変数)
実際に実行する場合、たとえばこんな感じになります。
関数abcは引数を⁺1して返すというもので、3行目では変数に対し引数1を使った関数abcの値を代入して、変数を出力しています。
実行結果です。
引数は複数指定することも可能です。
引数を指定しないこともできます。
決まった結果しか返しませんが、これもひとつの関数です。

必須引数とオプション引数

関数には必ず入力しなくてはいけない引数(必須引数)と、入れても入れなくてもいい引数(オプション引数)があります。
defの後ろの()に名前だけ入れた引数は必須引数となります。
必須引数のある関数では、ちゃんと必須引数を指定しないとエラーになります。
#python
def abc(d = 1):
    return d + 1
abc()
これに対し、引数を名前=値の形で指定した引数はオプション引数となります。
オプション引数の場合、引数を指定せずに関数を実行してもエラーになりません。
#python
def abc(d,e = 1):
    return d + e
print(abc(1))
,で区切ることで、必須引数とオプション引数を両方同時に使うこともできます。
この場合必須引数だけで実行すれば毎回引数⁺1を返すし、
オプション引数の値を途中で更新することも可能です。

defで処理をまとめる

defを使って処理をひとまとめにすると、同じ処理を何度も書くのを避けることができます。
たとえばこのコードでは同じコードを三回使っていますが、
#python
def good_or_bad():
    if 変数 == 1:
        print("good")
    elif 変数 == 2:
        print("soso")
    else:
        print("bad")


変数 = 1
good_or_bad()

変数 = 2
good_or_bad()

変数 = 3
good_or_bad()
この同じ処理をひとつの関数にまとめてしまえば、比較的シンプルなコードにすることができます。この場合引数がないので、returnも不要です。
実行結果です。
Python操作方法、関数・メソッドリファレンス
使用用途別にまとめたPythonリファレンスページです。 初期準備、基本概念 ダウンロード、インストール、起動 ShellとEditor、保存、実行 保存したPythonの起動 コメント、docstring、行またぎ コメント、...

コメント

モバイルバージョンを終了