defを使うと、Python上で使用できる関数(決まった処理を行って戻り値を返す処理。メソッドと違いオブジェクトに付かない)を定義することができます。Define(定義)の略です。
def
やりかたですが、まずdefと記述してその後に関数名を指定します。
次に()の中に引数(扱う値。名前はなんでもいい)を指定し、
:を打って改行すると自動でインデントがつく(ブロックになる)ので、
引数にどういう処理をして戻り値にしたいのかを、returnの後で定義します。
#python
def abc(a):
return a+1
変数 = abc(1)
print(変数)
実際に実行する場合、たとえばこんな感じになります。
関数abcは引数を⁺1して返すというもので、3行目では変数に対し引数1を使った関数abcの値を代入して、変数を出力しています。
関数abcは引数を⁺1して返すというもので、3行目では変数に対し引数1を使った関数abcの値を代入して、変数を出力しています。
実行結果です。
引数は複数指定することも可能です。
引数を指定しないこともできます。
決まった結果しか返しませんが、これもひとつの関数です。
決まった結果しか返しませんが、これもひとつの関数です。
必須引数とオプション引数
関数には必ず入力しなくてはいけない引数(必須引数)と、入れても入れなくてもいい引数(オプション引数)があります。
defの後ろの()に名前だけ入れた引数は必須引数となります。
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、行またぎ
コメント、...
コメント