defを使うと、Python上で使用できる関数(決まった処理を行って戻り値を返す処理。メソッドと違いオブジェクトに付かない)を定義することができます。Define(定義)の略です。
def
![python def1](https://sunagitsune.com/wp-content/uploads/2022/09/python-def1.png)
やりかたですが、まずdefと記述してその後に関数名を指定します。
![python def2](https://sunagitsune.com/wp-content/uploads/2022/09/python-def2.png)
次に()の中に引数(扱う値。名前はなんでもいい)を指定し、
![python def3](https://sunagitsune.com/wp-content/uploads/2022/09/python-def3.png)
:を打って改行すると自動でインデントがつく(ブロックになる)ので、
![python def4](https://sunagitsune.com/wp-content/uploads/2022/09/python-def4.png)
引数にどういう処理をして戻り値にしたいのかを、returnの後で定義します。
#python
def abc(a):
return a+1
変数 = abc(1)
print(変数)
実際に実行する場合、たとえばこんな感じになります。
関数abcは引数を⁺1して返すというもので、3行目では変数に対し引数1を使った関数abcの値を代入して、変数を出力しています。
関数abcは引数を⁺1して返すというもので、3行目では変数に対し引数1を使った関数abcの値を代入して、変数を出力しています。
![python def5](https://sunagitsune.com/wp-content/uploads/2022/09/python-def5.png)
実行結果です。
![python def6](https://sunagitsune.com/wp-content/uploads/2022/09/python-def6.png)
引数は複数指定することも可能です。
![python def7](https://sunagitsune.com/wp-content/uploads/2022/09/python-def7.png)
引数を指定しないこともできます。
決まった結果しか返しませんが、これもひとつの関数です。
決まった結果しか返しませんが、これもひとつの関数です。
必須引数とオプション引数
![def 引数1](https://sunagitsune.com/wp-content/uploads/2022/09/90967bff8c99d761b7eb1a27a25da6c9.png)
関数には必ず入力しなくてはいけない引数(必須引数)と、入れても入れなくてもいい引数(オプション引数)があります。
defの後ろの()に名前だけ入れた引数は必須引数となります。
defの後ろの()に名前だけ入れた引数は必須引数となります。
![def 引数2](https://sunagitsune.com/wp-content/uploads/2022/09/115e231a2a03b781b9fcad400b2d2e1f.png)
必須引数のある関数では、ちゃんと必須引数を指定しないとエラーになります。
#python
def abc(d = 1):
return d + 1
abc()
これに対し、引数を名前=値の形で指定した引数はオプション引数となります。
![def 引数3](https://sunagitsune.com/wp-content/uploads/2022/09/b1fd6cb463af9bfd12dbfcfcdacf5f6c.png)
オプション引数の場合、引数を指定せずに関数を実行してもエラーになりません。
#python
def abc(d,e = 1):
return d + e
print(abc(1))
,で区切ることで、必須引数とオプション引数を両方同時に使うこともできます。
![def 引数4](https://sunagitsune.com/wp-content/uploads/2022/09/9ac5ba1e7f29421fec45dab701d6315c.png)
この場合必須引数だけで実行すれば毎回引数⁺1を返すし、
![def 引数5](https://sunagitsune.com/wp-content/uploads/2022/09/4dfdf43c55155e2ae61bcc4c3350a59c.png)
オプション引数の値を途中で更新することも可能です。
defで処理をまとめる
![def_1](https://sunagitsune.com/wp-content/uploads/2022/09/def_1.jpg)
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も不要です。
![def_2](https://sunagitsune.com/wp-content/uploads/2022/09/def_2.jpg)
実行結果です。
![](https://sunagitsune.com/wp-content/uploads/2022/05/laptop-g2651bd324_1280-160x90.png)
Python操作方法、関数・メソッドリファレンス
使用用途別にまとめたPythonリファレンスページです。
初期準備、基本概念
ダウンロード、インストール、起動
ShellとEditor、保存、実行
保存したPythonの起動
コメント、docstring、行またぎ
コメント、...
コメント