【Python超入門コース】14.実践|すべて理解できればPythonの超入門者から卒業です【プログラミング初心者向け入門講座】

Python超入門コース

この記事の執筆・監修

キノコード
キノコード    

テクノロジーアンドデザインカンパニー株式会社のCEO。
日本最大級のプログラミング教育のYouTubeチャンネル「キノコード」や、プログラミング学習サービス「キノクエスト」を運営。
著書「あなたの仕事が一瞬で片付くPythonによる自動化仕事術」や、雑誌「日経ソフトウエア」や「シェルスクリプトマガジン」への寄稿など実績多数。

はじめに

こんにちは。キノコードです。
「Python超入門コース#14 実践」について説明します。

実践

総まとめの実践編として、テスト結果を判定するプログラムを作ってみましょう。
どんなプログラムを書くか説明します。
まず、Studentというクラスを作ります。
Studentクラスには、生徒の名前を代入する「name」のアトリビュートを定義します。
そして、Studentクラスには2つメソッドを定義します。
1つのメソッドは、5教科の平均点を計算するcalculate_avgメソッド。
ちなみに、calculateは計算するという意味で、Avgは、平均のaverageを省略する時にプログラミングでよく使う文字です。
もう1つメソッドは、平均点以上だったら合格という意味の"passed"を表示、平均点以下なら不合格という意味の"failed"を表示させるjedgeメソッドを定義します。
早速、ソースコードをみていきましょう。

class Student:

    def __init__(self,name):
        self.name = name

    def calculateAvg(self, data):
        sum = 0
        for num in data:
            sum += num

        avg = sum / len(data)
        return avg

    def jedge(self, avg):

        if (avg >= 60):
            result = "passed"
        else:
            result = "failed"
        return result

a001 = Student("sato")
data = [70, 65, 50, 90, 30]
avg = a001.calculateAvg(data)
result = a001.jedge(avg)

print(avg)
print(a001.name + " " + result)

まずClassと書いて、次にクラス名を書きます。
今回はStudentというクラス名なので、Student。コロンを書いて改行。
次に、コンストラクタ(初期化メソッド)の定義していきましょう。
佐藤さん、鈴木さん、佐々木さんといったような名前を代入したいので、アトリビュートはnameとしておきましょう。
次に、5教科の平均点を計算するcalculate_avgメソッドを定義します。
メソッドには、5教科の点数が格納されているリストを渡します。
そして、sumという変数を定義をして、0を代入。
レッスン11で説明しましたが、for文のinの後にリストを書くことで、リストの中身が変数に一つずつ格納されます。
それをレッスン09の演算子で説明した、配列の値を複合代入演算子を使って足し上げていきます。
そして、合計を、リストの要素数で割って平均を算出し、avgという変数に代入します。
リストの要素数を求めるにはlenを使います。
算出した値をreturnで返します。
最後に、テスト結果を判定するjedgeメソッドを作ってみましょう。
jedgeメソッドに平均点を渡しましょう。引数名はavgとします。
if文で、その平均点が60点以上ならpassed、それ以外ならfailedが、resultという変数に格納されるようにします。
これもreturnで返します。
これで、jedgeメソッドの完成です。
以上で、アトリビュートとメソッドの定義は完了です。
続いて、「インスタンス化」をします。
aという学級の出席番号001番の人は、satoさんだとします。
したがって、インスタンス名をa001とします。
「sato」を渡してインスタンス化します。
そして、dataという変数に、リストを代入。リストには、70, 65, 50, 90, 30という5科目の点数を記述します。
calculate_avgメソッドにリストを渡して平均点を算出します。
returnで平均点が返ってくるので、それをavgという変数に格納します。
そのavgをjedgeメソッドに渡すと、passedかfailedが返ってくるはずです。
print関数で、平均点を表示させ、名前と結果を表示させましょう。
実行してみましょう。
61点という平均点と名前とpassedが返ってきました。

実行結果:

61.0
sato passed
次にリストの90点を10点にしてみましょう。
class Student:

    def __init__(self,name):
        self.name = name

    def calculateAvg(self, data):
        sum = 0
        for num in data:
            sum += num

        avg = sum / len(data)
        return avg

    def jedge(self, avg):

        if (avg >= 60):
            result = "passed"
        else:
            result = "failed"
        return result

a001 = Student("sato")
data = [70, 65, 50, 10, 30]
avg = a001.calculateAvg(data)
result = a001.jedge(avg)

print(avg)
print(a001.name + " " + result)
45点になるので、satoとfailedが表示されるはずです。
実行してみます。
45点と名前とfailedが返ってきました。

実行結果:
45.0
sato failed
これでpythonの超入門コースはおわりです。お疲れ様です。

KinoCode チャンネル

YouTubeで毎日動画配信しています。
動画は3分間なので、
 ・通勤時間
 ・お昼休み
 ・お手すきのとき
 ・寝る前
など手軽に視聴できます。
 
ちょっとしたインプットにどうぞ!
 
▼チャンネル登録はこちらからどうぞ。
未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト