本記事は,python入門講座シリーズの内容になります。その他の記事は,こちらの「Python入門講座/実践講座まとめ」をご覧ください。ターゲットは主にpythonを使ったことがない人向けで,簡潔で分かりやすい説明を心がけています。
今回のお題
関数を定義できるようになろう!
写経
まずは,上の写真と同じ内容をセルに書き込んで,実行(Shift+Enter)してみてください。
ポイント
def kakko():
print("kakko, kakko")
def kakko_talk(word):
print(word)
def kakko_repeat(word, iter):
for i in range(iter):
print(word)
# ↑↑defってナニ??
# ↑↑()ってナニ??
# ↑↑rangeってナニ??
今回のポイントは,pythonを使いこなすために必須ともいえる関数についてです。
解説
今まで誤魔化してきたのですが,実は「print()」というのは関数と呼ばれています。基本的には,関数というのは「def文」によって定義しなければ使うことができないのですが,print()などはPythonに最初から入っている関数なので,定義しなくても使うことができます。このような関数を「組み込み関数」と呼びます。
それでは,ここから関数の作り方(定義の仕方)を見ていきましょう。
def 名前(引数):
処理
return 戻り値
ここで,名前は自分で好きなように付けることができます。「小文字+アンダーバー」で命名することが慣習とされています。引数というのは,関数に与える情報のことです。今回の例で言えば,「kakko」は引数を受け取らずに「”kakko, kakko”」と鳴く関数です。「kakko_talk」は引数を1つ受け取って,その引数を鳴く関数です。「kakko_repeat」は引数を2つ受け取り,1つ目の引数を2つ目の引数分繰り返す関数です。
また,関数は出力値を定めることができます。この出力のことを「戻り値」と呼びます。関数が戻り値を出力することを「返す」と呼びます。「引数を与え,戻り値を返す」と理解しましょう。returnの後に続けて戻り値を入力しますが,データ型は問いません。また,戻り値は省略可能です。
また,今回のお題の中にある「range()」というのも関数の1つです。range()は少し難しい関数なのですが,最初のうちは引数の数だけ繰り返し構造を生成する関数だと思ってくれればOKです。今回はrange(5)を与えていますので,for文において5回分の繰り返し構造を生成します。
それでは,最初の疑問に答えておしまいです。
●defってナニ??
→関数を定義するための文です。
●()ってナニ??
→引数を受け取るための記号です。
●rangeってナニ??
→繰り返し構造を生成する関数です。