まるおのアウトプットの場

プログラミング勉強中。勉強した内容をアウトプットしていきます。

関数を自分で作る def

R5.2月からPythonの勉強をしているプログラミング初心者です。

 

勉強した内容を備忘メモ程度にアウトプットしていきます。

 

参考書籍はこちら。

(さすがに全てまるまる写してしまうとまずいので部分的に抽出していきます。)

item.rakuten.co.jp

 

関数で命令をまとめる

「ある仕事を行う命令のまとまり」をブロックに書いてまとめたものが「関数」です。これまで出てきたprint()やint()などもPythonに最初から用意されている関数です。

関数は用意されているものだけではなく、自分で作ることができます。

今回は関数を自分で作る方法を学んでいきます。

 

書式:関数の作り方

def 関数名():

    関数で行う処理

 

関数は「関数名」を自由に決めて「def 関数名():」と指定し、「その関数で行う処理」を指示して作ります。「関数名」は「この関数は何をするものなのか」をわかりやすく表現した名前をつけましょう。

「関数で行う処理」は、まとまった処理なのでif文やfor文と同じように「ブロック」で作ります。インデントで一段下げて作ります。

 

 

作った関数を使う時は「関数名()」で呼び出して実行します。名前で呼び出したら「関数で行った処理」をまとめて行ってくれるのです。

試しに関数を作ってみましょう。

 

プログラム

最初の2行でsayhelloという関数を作成し、下の3行は関数を呼び出しています。

出力結果

print(”こんにちは”)と定義されている関数を3行呼び出したので「こんにちは」と3行出力されていますね。

 

一言メモ

defはかなり使い勝手良さそうな感じがします。ちなみになぜ「def」かというと「define」の略みたいですね。意味は「(~を)定義する」だそうです。そのままですね。

 

引数(ひきすう)を使って関数にデータを渡す

上記の関数は「関数名で呼べば”こんにちは”と表示するだけ」の「決まりきった仕事をする関数」でした。

しかし、仕事にはいろいろあります。データを渡して処理を調整したり、計算した結果を返してもらったりするような仕事もあります。

関数に引き渡すデータのことを「引数(ひきすう)」または「パラメータ」といい、関数が処理したあと結果として戻ってくる値のことを「戻り値(もどりち)」といいます。

 

書式:関数の作り方(引数と戻り値がある場合)

def 関数名(引数1,引数2,…):

    関数で行う処理

    return 戻り値

 

関数には

  1. 引数も戻り値もない関数
  2. 引数だけある関数
  3. 戻り値だけある関数
  4. 引数も戻り値もある関数

などの種類があります。

 

一言メモ

これだけ読むとなんだかよくわからないですよね。でも実際やってみると言っていることはそんなに難しくないです。

 

消費税(10%)を計算してくれるプログラムを書こう

それでは商品の本体価格(引数)を渡すと消費税計算を行い、消費税込みの金額(戻り値)がわかる関数を作ってみましょう。これは「4.引数も戻り値もある関数」に該当します。

プログラム

1行目で「postTaxPrice」という関数を作り、引数を(Price)とします。

2行目で「ans」という変数に「Price(引数)x1.1」の計算を代入します。

3行目で戻り値を2行目で代入した「ans」とします。

1~3行目まで関数postTaxPriceと定義します。

1行空けて

5~7行目からは1~3行目で定義したpostTaxPrice関数と()に引数を入力していきます。

出力結果

引数からそれぞれ消費税10%込の金額が出力されました。

 

一言メモ

なんだか難しく見えますが1行1行見ていくとそんなに難しいことはしていないですよね。

 

引数か戻り値だけの関数の使い道

上記は「4.引数も戻り値もある関数」でしたが、「2.引数だけある関数」や「3.戻り値だけある関数」はどのように使うのか学んでいきましょう。

 

「2.引数だけある関数」は「値を渡して処理を調整したい時」に使います。

例えば「ユーザー名付きでこんにちはと表示する」ような場合は「2.引数だけある関数」を使います。

プログラム

出力結果

ユーザー名が引数になっています。これはよくありそうな形ですね。

 

「3.戻り値だけある関数」は「処理に変化があるので知りたい時」に使えます。例えば、実行して初めて処理がわかる「おみくじ」などがその例です。

プログラム

「import random」や「random.choice」については次回学んでいきます。

今回は引数がなく、リスト(大吉、中吉、小吉、凶)の中からランダムに戻り値があるプログラムという認識があれば大丈夫かと思います。

出力結果1

出力結果2

ランダムに結果が出てきますね。2回実行しましたが結果は中吉と小吉でした。

 

一言メモ

「3.戻り値だけある関数」は自分が作りたいものに関わっているのでしっかり覚えたいと思います。自分の中で使うことがはっきりしているとちゃんと覚えられますね。笑

 

まとめ

今回は関数を自分で作る方法を学んでいきました。引数と戻り値については慣れるまでは頭がゴチャゴチャしてしまいますね。

実はこのブログに書いている頃は参考書籍3周目なのですが、引数と戻り値については1周目ではちゃんと理解できませんでした。2周目できちんと理解して3周目で忘れないようにするといった流れでやっています。わからなくても一度最後まで読んでからまた読むと新たな発見があったりして面白いです。