アカデミック

【第12回 関数】元文系京大生による超初心者向けPython入門講座

本記事は,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に最初から入っている関数なので,定義しなくても使うことができます。このような関数を「組み込み関数」と呼びます。

他にも文字列型に変換するstr()も組み込み関数の1つです。

 

それでは,ここから関数の作り方(定義の仕方)を見ていきましょう。

def 名前(引数):
  処理
  return 戻り値

 

ここで,名前は自分で好きなように付けることができます。「小文字+アンダーバー」で命名することが慣習とされています。引数というのは,関数に与える情報のことです。今回の例で言えば,「kakko」は引数を受け取らずに「”kakko, kakko”」と鳴く関数です。「kakko_talk」は引数を1つ受け取って,その引数を鳴く関数です。「kakko_repeat」は引数を2つ受け取り,1つ目の引数を2つ目の引数分繰り返す関数です。

また,関数は出力値を定めることができます。この出力のことを「戻り値」と呼びます。関数が戻り値を出力することを「返す」と呼びます。「引数を与え,戻り値を返す」と理解しましょう。returnの後に続けて戻り値を入力しますが,データ型は問いません。また,戻り値は省略可能です。

一点注意点として,関数内で定められた変数は関数の外では使えなくなります。変数の使える範囲のことを「スコープ」と呼びます。ですので,関数定義に使われる変数のスコープは関数内ということになります。
「引数=ほにゃらら」と指定することで,引数に初期値を与えることができます。

 

また,今回のお題の中にある「range()」というのも関数の1つです。range()は少し難しい関数なのですが,最初のうちは引数の数だけ繰り返し構造を生成する関数だと思ってくれればOKです。今回はrange(5)を与えていますので,for文において5回分の繰り返し構造を生成します。

それでは,最初の疑問に答えておしまいです。

●defってナニ??
→関数を定義するための文です。
●()ってナニ??
→引数を受け取るための記号です。
●rangeってナニ??
→繰り返し構造を生成する関数です。

ABOUT ME
zuka
京都大学で機械学習を学んでいます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

※ Please enter your comments in Japanese to prevent spam.