いうえおかき

関数の定義(Pythonを学習してみた!)

書き方の一例です。
def 関数名(仮引数)
return 戻り値

defの行に記述するものは値をうけとるための「仮引数」と呼ぶようです。

さっそく関数を作ってみます。

# coding:utf-8
#総和を求める関数の定義
def sum( L ): #関数はpythonではdef。sum部分は自由。Lは引数。
ans = 0
for x in L:
ans += x
return ans #ansの内容を返す
#処理の実行
dat=[1,2,3,4,5,6]
s=sum(dat)
print(s)

これを実行すると
21
合計値が出ました。
sumという総和を求める関数ができました。

可変長の引数

関数は引数を受け取って処理をして、戻り値を返します。
pythonはその引数の個数を不定にすることが可能なようです。

どういうことか試しに作ってみます。

# coding:utf-8
#総和を求める関数の定義
def sum2( *a ):
ans = 0
for x in a:
ans += x
return ans
#処理の実行
s = sum2( 1 )
print( s )
s = sum2( 1,2,3 )
print( s )

sum2( *a )というのが可変長の引数です。
このように設定することで仮引数部分が1個だろうと複数だろうと
計算できるようにしてくれます。

キーワード引数

なんと、引数を名前(キーワード)で与えることが可能なようです。
例えば、
bmi(体重=65,身長=1.67)
こんな形でできる方法があるようです。

# coding:utf-8
#BMIを求める関数の定義
def bmi(**a):#仮引数の頭にアスタリスク2つ(**)でキーワード引数に。さらにaが辞書オブジェクトとして機能します。
w = a['体重']
h = a['身長']
return w/h/h
#処理の実行
print(bmi(体重=65,身長=1.67))
print(bmi(身長=1.67,体重=65))

これはなんとわかりやすい!
しかも引数の順番(身長と体重)を気にしなくても合わせてくれるようです。
そして以前学んだ「辞書」がここにきて生きてくるとは思いませんでした。

トップへ戻る