【演習】実際の業務を想定してプログラムを作ってみる

それではいよいよプログラムの実装を行っていきます。設計書を基にそれぞれ細かく作っていきましょう。

設計書の内容は以下でした。

上記を確認するとメインとなるプログラムの処理とそこから呼び出される関数が3つ必要だということがわかります。そのため、まずはメインのプログラムから作成していきましょう。因みに関数を先に作っても問題ありません。私は先におおもとの流れを作ってから細かい処理を関数で実装していく順番で開発しているのでここでもそうするというだけで、どちらが先でも構いません。自分に合った効率が良くなるプログラミングで実装していきましょう。

プログラム作成手順

・メインプログラムを作る

・平均算出関数を作る

・標準偏差算出関数を作る

・分散算出関数を作る

メインプログラムを作る

それでは基軸となるメインプログラムを作っていきます。処理フローの一番上からコードに置き換えていきます。

入力値計の受け取り

まずは画面から入力された値を受け取れるように処理を実装していきます。入力値の受け取りってどうやるの?というところからですが、入力値の受け取りはinput関数というものを使用して実装します。詳しくは以下の記事を参照してください。

ここでは簡単に input() と書くだけで実装することができますので、コードに起こしてみましょう。すると以下のようになると思います。

なお、要件によると受け取った数値は複数あり、それぞれ “,” (カンマ) で区切られているので、数値を”,”で分解する必要があります。

ここで役に立つのがsplit関数と呼ばれるものです。簡単に言うと指定した値で文字列を分解し、分解した値で配列を作る関数です。詳しい使い方は以下の記事をご参照ください。

それではsplit関数を使用して受け取った値を分解してみましょう。すると以下のようになるかと思います。

関数の呼び出しと値の受け取り

次に各種関数の呼び出しと戻り値を受け取る変数を用意しましょう。それぞれは同じような処理になるはずですので、一気にコードに起こしてみましょう。なお、関数名はここでは適当な名前を付けておきます。そうすると以下のようになるかと思います。

結果の表示

最後に計算結果を画面に表示させる処理を実装します。

コンソール画面に表示させるにはprint関数を使えばよいので、print関数に受け取った値を渡してあげればよいのです。なので、結果として以下のようになれば良いでしょう。

表示のさせ方はなんでも良いです。できるだけ見やすいように意識しましょう。

関数を作る

メインプログラムができましたので、各種関数を実装していきます。

平均算出関数を作る

まずは平均値を算出する関数を実装していきましょう。

平均値は数学の公式では以下のようになっております。

これをコードに置き換えるためにそれぞれ分解してPythonの変数に置き換えてみます。

x1 ~ xn = numlist

n = numlistの個数

平均値のそれぞれの値は入力された値になるのでnumlistが該当します。あとはそれぞれの値を足した後、n つまり入力された数値の個数で割ってあげる必要があります。

なので、numlistの配列の長さが取得できれば個数が得られそうです。

配列の長さを得るにはlen関数を用います。詳細な使い方は以下をご参照ください。

上記をまとめると以下のようになります。

x1 ~ xn = numlist

n = len(numlist)

それでは役者がそろったので上記を踏まえて平均値を求める関数を作りましょう。

以下のようになっていれば問題ないかと思います。

標準偏差算出関数を作る

それでは次に標準偏差を作っていきます。

標準偏差に馴染みのない人は何それ?って感じでしょうが簡単に言えばそれぞれの数値における平均との差、それのさらに平均の値を取った値になります。公式では以下のように書きます。

平均の時でもそうですが、Σが出ると難しく見えますね。ただやってることはそれぞれの値で、平均との差を2乗して、さらにその平均を求めてるだけです。最後に2乗したものを取り払うように平方根で値を出します。まとめるとやることは、

平均との差を求める。

2乗する

平方根を取る

です。平均自体は上記で作った関数で出てきた値を使えばよさそうですね。2乗は「**2」を使えば簡単に求められますね。じゃあ平方根は?となるでしょうが平方根は言葉を変えれば「1/2乗」です。すなわち「**0.5」でできます。

じゃあこれらを踏まえて関数を作ってみましょう!すると以下のようになりましたでしょうか。

最初に平均を求めていますが、呼び出しの際に「def calcStd(numlist,ave) : 」のようにして平均を受け取るように指定するやり方でも構いません。

分散算出関数を作る

それでは最後に分散算出関数を作ります。

では分散の求め方はどうすればいいんだろうとなりますが、簡単です。

標準偏差を2乗する

だけです。なのでシンプルに以下で大丈夫です

ここにきて手抜きですね。。。わざわざ固有の関数として実装する必要もないかもしれません。

また、作ってもらえばわかりますが、それぞれ関連性のあるものでしたので、一つの関数にまとめてしまってもよかったかもしれません。が、今回は練習のために一つ一つ細かく実装してみました。

なお、最初に標準偏差を求めていますが、標準偏差の関数同様引数に標準偏差を受け取るように指定しても良いです。

プログラムを一つにし、システムを完成させる。

それでは最後に今まで実装してきたコードを一つにまとめてシステムを完成させましょう。流れとしては最初に必要な関数を定義し、その下にメインプログラムを書きましょう。

できましたでしょうか。今回はせっかくなのでそれぞれの関数にドキュメンテーション文字列とアノテーションをつけております。身に着けたものはなるべく使うようにすると知識の定着が速いので積極的に使えるものは使いましょう。

Pythonファイルにソースコードを書いて実施する。

それではプログラムとして実行できるようにPythonファイルにコードを書いて実装しましょう。

やり方については入門で解説いたしました。忘れてしまった方は再度見直してみてください。

あわせて読みたい
【Python 入門】Pythonコードをファイルから実行する方法 前回は、インタプリタよりPythonを実行しましたが、今回はファイルに記載したコードを実行します。 インタプリタの対話モードを使用する方法はプログラムの実行結果の確...

ソースコードを記載した[calcNum.py]等の名前でPythonファイルを作成しコマンドプロンプトから実行してみましょう。コマンドはファイル名を指定するだけです。

実行できましたでしょうか。以上で実装は完了です。

ネットで記事を眺めながらインプットするだけでも良いのですが、自ら考えてアウトプットする方法の方がより実装する力が付きます。今回の演習はその練習になれば幸いです。

それでは次は実装したプログラムについて行うテストについて解説いたします。

今回はここまでです。

お疲れ様でした。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

本業ではPHPを使ったWEBアプリやJavaを使用した基幹アプリを作成しております。Pythonは個人的に勉強しており、E資格を取ったりしたおかげで、業務でAIの研究とかも任されるようになりました。学習のアウトプットのために本サイトを運営しておりますが、これからPythonを学ぶという人のお役に立てればいいなと思います。わからないことや調査して記事にしてほしいことがございましたらご連絡いただけると幸いです。

コメント

コメントする

目次
閉じる