大人のための『夢を叶える学校』

「夢は叶えるもの!」険しい道でも突き進めば、その先に必ず光が見える。実現した経緯や飲食店経営・起業の仕方などについて投稿しています

Pythonプログラミング【応用編①】簡単な関数を体験しましょう!

(✿✪‿✪。)ノコンチャ♡

Pythonのプログラミングを学び始め、

プログラミングの楽しさを体感して頂いていますか。

今回から応用編に入ります。

 

テーマは『関数』です。

関数を作って、

それを実行して、

これが「プログラミング」なんだ!

ということを体験しながら学んでいきましょう。

関数

f:id:success-life:20210911232316j:plain

応用編1日目

関数を作ることを『関数定義』といいます。

関数を定義するには、

関数のブロック内に複数の Python の文を記述します。

つまり、

これまで学んできたプログラムの一部に、

関数の名前を付けるような感じです。

 

ここで話を進める前に復習しておきましょう

 

プログラム中の一つの処理(代入文、if 文など)。
演算子、式、値、関数呼び出しなどを組み合わせたもの。「文の一部」
演算子 計算や比較などをする記号。「式の一部」
関数 複数の文をまとめ、名前を付けて呼び出し可能にしたもの。

 

関数のメリット

関数を作るということは、

プログラムの一部を抜粋し名前を付けることです。

「年齢層を判定す関数」「おつりを計算する関数」のように、

何をしているプログラムかがわかりやすくなります。

つまり、

プログラムの構造を理解しやすくなるメリットがあります。

 

これまでに学んだ「print 関数」と同様、

何度でも呼び出せます。

そうすることで、

プログラム内で同じ処理を繰り返し記述しないで済みます。

 

関数の記述

関数を作るには『def(デフ)』というキーワードを使います。

関数を作ることを「定義する(define)」といいます。

  def関数名():

  ␣␣␣␣関数内で実行する処理

 

def の後に関数名を書きます。

関数名の後には、

その関数で使う「引数」を()内に書きますが、

引数を使う必要がない場合はカッコだけ記述します。

 

定型メールの文面を作る関数

これまで通り、

プログラムを記述して実行してみましょう。

 

関数名を「 mail_form 」として、

メールの定型文を自動出力する関数を作ります。

  defmail_form():

  ␣␣␣␣print('お世話になっております。')

  ␣␣␣␣print('今月の請求書を送ります。')

 

関数の呼び出し

定義した関数の呼び出しは、

関数名引数()内に書きますが、

引数を使う必要がない場合はカッコだけ記述します。

  mail_form()

 

f:id:success-life:20210911030956p:plain

関数①

 

実行してみましょう。

f:id:success-life:20210911031040p:plain

関数②

 

では次に、

引数を受け取る関数を作ってみましょう。

 

関数と引数

メールの受信者を『引数』として、

関数の呼び出し時に任意で受信者名を指定することにします。

受信者名の引数を「receiver」とします。

  defmail_form(receiver):

  ␣␣␣␣print(receiver,'様')

  ␣␣␣␣print('お世話になっております。')

  ␣␣␣␣print('今月の請求書を送ります。')

 

受信者名に「様」を付けて表示する関数とします。

 

f:id:success-life:20210911033700p:plain

関数③

 

実行すると、

f:id:success-life:20210911033743p:plain

関数④

ここまでは理解できましたか?

作った関数を見てみると print 文が3行続いてます。

この関数の中で変数を使って、

よりシンプルに記述してみましょう。

 

三重クォート文字列

『三重クォート文字列(ヒアドキュメント)』は、

複数行の文字列をまとめるものです。

’’’(三つのクォート)で囲んで記述しますが、

改行やスペースも実行結果に反映します。

三重クォート文字列は一行づつ改行て記述しますが、

ブロック内でもインデントしないので注意してください。

 

これは、

文章で解説するよりも、

実際にプログラミングして実行結果を見た方が理解しやすいです。

 

今回は、

宛名を引数にすると共に、

請求金額も引数に加えて表示してみます。

三重クォート文字列内に引数を2つ差し込むために、

『format メソッド』を使います。

  文字列.format(値1,値2)

 

format メソッドを使うと、

文字列内の{ }(フィールド)の部分に任意の引数を差し込むことができます。

請求金額の引数を「bill」としてプログラミングしてみましょう。

  defmail_form(receiver,bill):

  ␣␣␣␣temp='''{}

  お世話になっております。

  今月の請求額は{}円です。

  '''

  ␣␣␣␣msg=temp.format(receiver,bill)

  ␣␣␣␣print(msg)

  

f:id:success-life:20210911223518p:plain

関数⑤

 

実行してみます。

 

f:id:success-life:20210911223617p:plain

関数⑥


宛名と請求金額が表示されました。

 

ここで使った変数『temp』『msg』は、

この関数「mail_form」のブロック内でしか使えません。

これらを『ローカル変数』と呼びます。

そのため、

関数外では使えないので注意してください。

 

戻り値を返す関数

戻り値を返す「組み込み関数」には、

input や int がありました。

自作の関数では『 return(リターン)文』を使います。

  def関数名():

  ␣␣␣␣関数内で実行する処理

  ␣␣␣␣return結果の値

 

例えば、

請求金額に5%の手数料を上乗せしたい場合の関数を考えます。

  defadd_com(bill):

  ␣␣␣␣returnint(bill*1.05)

 

print(add_com(5000))

 

ここではまだ、

『関数を作る』ことの利便性には気付かないと思います。

なぜなら、

関数の中に

  ␣␣␣␣print(bill*1.05)

と記述しても、

同じ結果が得られます。

 

関数を作って「戻り値」のすることで、

関数同士間で連携が取れる利点があります。

さいごに

ちょっと難しくなってきましたが、

何度も読み直して貰えたら理解できると思います。

今回から『応用編』として解説していますが、

単に「こんな処理もできるんだ」っていうような感じで、

学んでいければいいと思います。

 

プログラミングとは、

自分が「こうしたい」と考えられれば、

道は開けるものです。

メソッドや文法は覚えなくても、

調べれば見つけられるものです。

 

つまり、

自分がやりたいことを機械にやらせるだけです。

難しく考えずに「慣れる」ことが大事なのです。

 

あと数回にわたって【応用編】が続きます。

事実、

プログラムは「記述する」ことよりも前に、

記述されたプログラムを読めるようになる、

言い換えれば「理解できる」ようになることです。

これが「慣れる」ということです。

 

ではまたお会いしましょう。