Python オブジェクト指向 練習問題 入門

python

【Python】オブジェクト指向の練習問題【診療支援アプリ作成】

2020年3月9日

こんにちは。

 

今回は今まで学習した、Pythonのオブジェクト指向の知識を総動員して、練習問題に取り組んでみましょう。

 

Pythonのオブジェクト指向については、以下の記事で学習する事が出来ます。

関連記事
Python オブジェクト指向 オブジェクト指向プログラミング
Pythonにおけるオブジェクト指向について解説【入門編その①】

続きを見る

関連記事
Python オブジェクト指向 入門
Pythonにおけるオブジェクト指向について解説【入門編その②】

続きを見る

 

では早速、練習問題に取り組んでみましょう。

 

【Python】オブジェクト指向の練習問題【病院の予約システムのアプリを開発してみよう】

Python オブジェクト指向 練習問題 入門

病院の予約アプリケーション想定した課題です。

 

患者のオブジェクトをHuman Classとして親クラス、Patient Classを子クラスにして作成してください。

 

病院をClinic Classとして、患者オブジェクトのリストを取り扱って、予約、診察のメソッドを作成しましょう。

 

また患者の待ち人数の増減を管理し、その待ち人数を表示する機能を実装してください。

 

課題では次の仕様を満たすように実装してください。

 

Python オブジェクト指向 練習問題 入門

クリニックの予約表示システム

 

 

仕様

まず、以下の3つのクラスを作ってください。

  • Human (親クラス)
  • Patient(Humanの子クラス)
  • Clinic

 

次に、以下の順番でコードを作成してください。

 

step
1
Human class(親クラス)を作る

【Human Class】

変数名備考
属性name人の名前

 

step
2
Patientクラス(Humanの子クラス)を作る

【Patient Class】

変数名備考
属性symptom症状
patient_id患者のID

 

step
3
Clinicのクラスを作る

【Clinic Class】

変数名/メソッド名備考
属性patient_listlist型のPatient Classを格納する変数
振る舞いshow_waiting_count()診察待ち人数を表示
引数:なし
返り値:なし
reserve()患者の予約処理をする。
すでに予約済みの患者を _check_reserved で確認して、予約済みですと表示する。
引数:予約する患者の Patient Class
返り値:なし
diagnosis()患者の診察処理をする。
引数で患者が指定されたときは、その患者を優先して診察。
指定がない時は、予約の早い患者を順に診察。
引数:診察する患者の Patient Class。初期値は None
返り値:なし
_check_reserved()患者の診察予約がすでにされているか確認
引数:予約するPatient Classs
返り値:True(予約されている) / False(予約されていない)

step
4
Clinicを変数名 myclinic でインスタンスする

 

step
5
以下の患者リストを Cinic Classreserveメソッド で予約(患者リストの追加)する

名前ID症状
佐藤111
田中222腹痛
鈴木333鼻水
山田444倦怠感
ご自身の名前555何か症状

step
6
Clinic Classの show_waiting_count() メソッドで、現在の待ち人数を表示する

 

step
7
先ほどの患者リストと重複する一人を再度予約して、予約済みですのメッセージを確認する

 

step
8
Clinicの diagnosis (診察)メソッドを実行し、待ち人数が減ったことを待ち人数を表示して確認する

 

step
9
Clinicの diagnosis に患者のIDを引数に与えて実行し、待ち人数が減ったことを待ち人数を表示して確認する

 

補足

Clinicの患者リストである patient_list のlist型がわからない方は以下を参照ください。

In[]

 

練習問題【演習方法その①】

Python オブジェクト指向 練習問題 入門

課題と仕様を見て、自身でコーディングしてみてください。

 

コーディングに不安な方は、演習方法2のコードの穴埋めにて演習を実施してください。

 

練習問題【演習方法その①】

Python オブジェクト指向 練習問題 入門

 

— コード追加 — に1行ずつコードを埋めていって、プログラムを完成させてください。

 

演習のJupyter notebookをご利用される方は演習(google driveリンク)を参照いただければと思います。

 

step
1
Human class(親クラス)を作る



 

step
2
Patientクラス(Humanの子クラス)を作る



 

step
3
Clinicのクラスを作る



 

step
4
Clinicを変数名 myclinic でインスタンス化する



 

step
5
患者の数名の予約・待ち人数の表示を行う



 

step
6
重複した患者を予約する



 

step
7
患者リスト順に表示して、待ち人数を表示する



 

step
8
患者ID "555" を指定して、急患の診察を行う。待ち人数を表示する。



 

実行結果

Python オブジェクト指向 練習問題 入門

実行結果の例になります。コード部分は隠してあります。

Python オブジェクト指向 練習問題 入門

 

解答例

Python オブジェクト指向 練習問題 入門

 

解答例(google driveリンク)を参照いただければと思います。

 

step
1
Human class(親クラス)を作る



 

step
2
Patientクラス(Humanの子クラス)を作る



 

step
3
Clinicのクラスを作る



 

step
4
Clinicを変数名 myclinic でインスタンス化する



 

step
5
患者の数名の予約・待ち人数の表示を行う



 

step
6
重複した患者を予約する



 

step
7
患者リスト順に表示して、待ち人数を表示する



 

step
8
患者ID "555" を指定して、急患の診察を行う。待ち人数を表示する。



演習は以上です。お疲れ様でした。

 

どうでしょうか?クラスの作り方、使い方に慣れたでしょうか?
最初は人の作った、クラスを眺めつつ、自分で作ってどんどん慣れていきましょう。

 

今回の課題は以上となります。お疲れ様でした。

 

 

人気記事 機械学習は挫折しやすい【挫折が多い原因と挫折回避の方法を教えます】

人気記事 無料あり:機械学習エンジニアの僕がおすすめするAI(機械学習)特化型プログラミングスクール3社


-python
-, ,

Copyright© Tommy blog  , 2020 All Rights Reserved.