🚀 ニフティ’s Notion

演習I

課題Ⅰ-1

以下の属性を持つScoreクラスを定義してみましょう。

Scoreクラス
属性 名前、英語の点数、数学の点数、理科の点数

classDiagram
  class Score {
     -名前
     -英語の点数
     -数学の点数
     -理科の点数
  }
解答例
class Score:
    def __init__(self, name, english, math, science):
        self.__name = name
        self.__english = english
        self.__math = math
        self.__science = science
課題Ⅰ-2

3名のインスタンスを作成し、各人物の名前と点数を表示してみましょう。

名前 英語の点数 数学の点数 理科の点数
A 30 65 80
B 95 70 45
C 81 72 90
解答例
class Score:
    def __init__(self, name: str, english: int, math: int, science: int):
        self.__name = name
        self.__english = english
        self.__math = math
        self.__science = science

    def print_detail(self) -> None:
        print(
            f"名前:{self.__name} 英語:{self.__english}点 数学:{self.__math}点 理科:{self.__science}点"
        )


if __name__ == "__main__":
    uehara = Score(name="上原", english=40, math=60, science=50)
    uehara.print_detail()
課題Ⅰ-3
Scoreクラス
属性 名前、英語の点数、数学の点数、理科の点数
メソッド 点数の評価を出力する

classDiagram
  class Score {
     -名前
     -英語の点数
     -数学の点数
     -理科の点数
     +点数の評価を出力()
  }

合計点数によって異なるコメントを出力するメソッドをScoreクラスに作成して、実行してみましょう。

《例》

  • 合計点数が200点以上:天才
  • 合計点数が200点未満:次回は頑張りましょう
解答例
class Score:
    def __init__(self, name: str, english: int, math: int, science: int):
        self.__name = name
        self.__english = english
        self.__math = math
        self.__science = science

    def print_detail(self) -> None:
        print(
            f"名前:{self.__name} 英語:{self.__english}点 数学:{self.__math}点 理科:{self.__science}点"
        )

    def calc_total(self) -> int:
        return self.__english + self.__math + self.__science

    def print_comment(self) -> None:
        total = self.calc_total()
        if total >= 200:
            print("天才")
        else:
            print("次回は頑張りましょう")


if __name__ == "__main__":
    uehara = Score(name="上原", english=40, math=60, science=50)
    uehara.print_comment()