れんしゅうもんだい では、こんな計算問題をやってもらいました。
この問題の発展形として、果物を買う個数を、事前に決まった定数ではなく、input() 関数 を使ってキーボードから入力できるようにしてみましょう。
- キーボードから、購入するももの個数を入力します。
- キーボードから、購入するみかんの個数を入力します。
- ももを一つ100円、みかんを一つ40円として、合計金額を出力します。
momo = input("ももは何個買いますか?") # ももの個数を入力する
num_momo = int(momo) # 入力した文字列を、整数値に変換する
mikan = input("みかんは何個買いますか?") # みかんの個数を入力する
num_mikan = int(mikan) # 入力した文字列を、整数値に変換する
total_momo = num_momo * 100
total_mikan = num_mikan * 40
total = total_momo + total_mikan
print("もも", num_momo, "個と、みかん", num_mikan, "個で、", total, "円です")
まず、ももの個数を
input()
関数で入力します。input()
関数の戻り値は文字列ですので、そのままでは金額の計算ができません。int()
を使って、整数に変換し、変数num_momo
に代入しておきます。
int()
の使い方を忘れてしまった方は、文字列の数値化 を参照してください。同様に、
input()
でみかんの個数を入力し、int()
で整数に変換して変数num_mikan
に代入します。ももの個数とみかんの個数から合計金額を計算し、変数
total
に代入します。計算した結果を出力します。
関数の定義¶
関数 では、Pythonに標準で用意されている関数の使い方を紹介しました。このような関数は、用意されたものを使うだけではなく、自分でも必要な関数を作れるようになっています。
ここでは、例として、上記の 3. の部分に相当する、ももとみかんの個数から合計金額を計算する部分を関数にしてみましょう。
関数は、次の形式で定義します。
def 関数名(引数名1, 引数名2, ...):
処理1
処理2
...
関数名と引数の指定¶
関数定義は def 関数名(引数名1, 引数名2, ...):
という行ではじまります。
関数名
には関数の名前、引数名1
、引数名2
、... には、関数に指定する引数の名前を指定します。
この例では、関数の名前を fruit_price
、引数で指定するももの個数を number_of_momo
、みかんの個数を number_of_mikan
としてみましょう。
def fruit_price(number_of_momo, number_of_mikan):
...
この関数を呼び出すときは、購入するももの数とみかんの数を指定して、次のように記述します。
fruit_price(100, 200) # ももを100個、みかんを200個購入する
引数として指定されたももの個数 100
と、みかんの個数 200
は、それぞれ変数 number_of_momo
と number_of_mimkan
として参照できます。
関数本体¶
def
文に続いて、関数が呼び出されたときに実行する処理を記述します。この処理は、行の先頭にスペース4文字で インデント して記述します。
def 関数名(引数名1, 引数名2, ...):
処理
^^^^
スペースを4文字入力
関数の処理として、ももとみかんの値段を計算する処理を書いてみましょう。
def fruit_price(number_of_momo, number_of_mimkan):
total_momo = number_of_momo * 100
total_mikan = number_of_mimkan * 40
total = total_momo + total_mikan
関数の中で、ももの個数 * ももの値段
と みかんの個数 * みかんの値段
を計算し、その和を変数 total
に代入しています。
abs(-100)
これとおなじように、関数 fruit_price()
を呼び出したときには、戻り値として、計算した合計金額を返すようにしましょう。
戻り値を返すようにすると、
print(fruit_price(100, 200))
と fruit_price()
関数を呼び出せば、戻り値として返した合計金額が表示されるようになります。
return文¶
関数の戻り値は、return
文で指定します。
次の例では、計算した値段である変数 total
を戻り値として、return
文に指定しています。
def fruit_price(number_of_momo, number_of_mimkan):
total_momo = number_of_momo * 100
total_mikan = number_of_mimkan * 40
total = total_momo + total_mikan
return total
return
文は、次の形式で記述します。
return 値
return
文を実行すると、指定した 値
を関数の戻り値に設定して、関数の実行を終了します。return
文より後ろの処理は、実行されません。
関数の呼び出し¶
これで関数 fruit_price(number_of_momo, number_of_mimkan)
が完成しました。つぎのようにして、呼び出してみましょう。
# 関数の定義
def fruit_price(number_of_momo, number_of_mimkan):
total_momo = number_of_momo * 100
total_mikan = number_of_mimkan * 40
total = total_momo + total_mikan
return total
# もも5個、みかん10個の値段を計算
total = fruit_price(5, 10)
print("もも 5個と、みかん 10個で、", total, "円です")
変数とおなじように、定義した関数は別のセルでも利用できます。別の条件で fruit_price()
を呼び出してみましょう。
# もも100個、みかん200個の値段を計算
total = fruit_price(100, 200)
print("もも 100個と、みかん 200個で、", total, "円です")