pythonでオリジナル関数を作る

Pythonの標準ライブラリにはさまざまな関数があらかじめ用意されていますが、オリジナルの関数を作成することも可能です。

関数はdef文で定義

Pythonでオリジナルの関数を作成する場合、def文を使用して関数を定義します。

def 関数名(引数1,引数2...):
  処理

2つの値から「足し算」「引き算」「かけ算」「割り算」を計算する

オリジナル関数を使用する例として、2つの値を引数に、「足し算」「引き算」「かけ算」「割り算」を値を戻す関数「test_calc()」を作成します。

def test_calc(num_1, num_2, op):
    #opが1なら足し算
    if op == 1:
        return num_1 + num_2
    #opが2なら引き算
    elif op == 2:
        return num_1 - num_2
    #opが3なら掛け算
    elif op == 3:
        return num_1 * num_2
    #opが4なら割り算
    elif op == 4:
        return num_1 / num_2

kekka = test_calc(40, 80, 1)
print ("{}と{}の足し算の答えは{}".format(num1,num2,kekka))
kekka = test_calc(40, 80, 2)
print ("{}と{}の引き算の答えは{}".format(num1,num2,kekka))
kekka = test_calc(40, 80, 3)
print ("{}と{}の掛け算の答えは{}".format(num1,num2,kekka))
kekka = test_calc(40, 80, 4)
print ("{}と{}の割り算の答えは{}".format(num1,num2,kekka))

「def test_calc()」で関数を定義しています。関数は呼び出す前に定義しておく必要があります。
「test_calc(40, 80, 1)」で引数に数値を指定して関数を呼び出しています。実行結果は以下の通りです。

’’’
% python def.py
40と80の足し算の答えは120
40と80の引き算の答えは–40
40と80の掛け算の答えは3200
40と80の割り算の答えは0.5
’’’

以下の様に「test_calc()」関数に、変数を引数にして呼び出すことも可能です。

def test_calc(num_1, num_2, op):
    #opが1なら足し算
    if op == 1:
        return num_1 + num_2
    #opが2なら引き算
    elif op == 2:
        return num_1 - num_2
    #opが3なら掛け算
    elif op == 3:
        return num_1 * num_2
    #opが4なら割り算
    elif op == 4:
        return num_1 / num_2

num1 = 40
num2 = 80

kekka = test_calc(num1, num2, 1)
print ("{}と{}の足し算の答えは{}".format(num1,num2,kekka))
kekka = test_calc(num1, num2, 2)
print ("{}と{}の引き算の答えは{}".format(num1,num2,kekka))
kekka = test_calc(num1, num2, 3)
print ("{}と{}の掛け算の答えは{}".format(num1,num2,kekka))
kekka = test_calc(num1, num2, 4)
print ("{}と{}の割り算の答えは{}".format(num1,num2,kekka))

実引数と仮引数

「kekka = test_calc(num1, num2, 1)」のように、関数を呼び出す側の引数を実引数と呼びます。「def test_calc(num_1, num_2, op)」のように関数を定義する側の引数を仮引数と呼びます。

関数の中で処理が行われ、return文で指定した値が呼び出す側に戻されます。

引数にキーワードを付ける

以下の様に複数の実引数を指定する場合、40、80、1それぞれの引数が、何の引数かが分かりにくくなります。

kekka = test_calc(40, 80, 1)

そのような場合には、引数にキーワードを与えることが可能です。キーワードは「キーワード=値」という書式で指定します。

kekka = test_calc(num_1=40, num_2=80, op=1)

キーワードを指定する場合は、引数の並び順を変えることも可能です。

kekka = test_calc(op=1,num_2=80, num_1=40)

引数にデフォルト値を設定する

関数を呼び出す時に、引数を指定しなかった場合のデフォルト値を設定することが可能です。デフォルト値は関数の定義でデフォルト値を設定したい引数に「引き数名=デフォルト値」という書式で指定します。
デフォルト値を持つ引数はデフォルト値を持たない引数の後ろに記載します。

先ほどのコードで、「足し算」「引き算」「掛け算」「割り算」を指定する引数「op」を指定しない場合はデフォルト値として「足し算」を設定するようにしてみます。

def test_calc(num_1, num_2, op=1):
    #opが1なら足し算
    if op == 1:
        return num_1 + num_2
    #opが2なら引き算
    elif op == 2:
        return num_1 - num_2
    #opが3なら掛け算
    elif op == 3:
        return num_1 * num_2
    #opが4なら割り算
    elif op == 4:
        return num_1 / num_2

num1 = 40
num2 = 80

kekka = test_calc(num1, num2)
print ("{}と{}の足し算の答えは{}".format(num1,num2,kekka))

実行結果は以下の通りです。

% python def.py
40と80の足し算の答えは120

おすすめ記事

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス:

検索

特集

初心者のためのciscoルータの管理

目指せPMP

▼ ネットワークエンジニアにおすすめのサイトはこちら ▼


著書

図解入門 よくわかる最新ネットワーク技術の基本と仕組み

初心者のためのCiscoルータ運用ガイド: 最速でCiscoルータを理解するための解説書

目指せPMP PMBOK第5版対応: 最速でPMPに合格するための解説書

見てわかるTCP/IP

おすすめ記事

カテゴリ

ブログ最新記事