Categories: Python

Python学習part7

どうもーASN48です。

Progateの学習コース「PythonⅤ」が修了しました!これでPythonの学習コースはすべて完了です。

総まとめの復習・アウトプットです!

今回もProgateの演習問題とほぼ同じものになってしまいますが・・・

「食べ物メニュー表」と「飲み物メニュー表」を表示して、数字入力によりメニューと数量を選択して、合計金額を表示する内容です。


「スポンサーリンク」

 

プログラムコード

まずは大元となる「MenuItem」というクラスの定義コードです。

#クラスの定義
class MenuItem:
    #__init__でインスタンス生成と同時に変数に値を代入
    def __init__(self, name, price):
        self.name = name
        self.price = price

    def info(selfself):
        return self.name + ': ¥' + str(self.price)

    def get_total_price(self, count):
        totale_price = self.price * count

        #3つ以上の購入で1割引
        if count >= 3:
            totale_price *= 0.9

        return round(totale_price)

こちらを「menu_item.py」というファイル名で保存します。

#menu_itemで定義した内容の呼び出し
from menu_item import MenuItem

class Food(MenuItem):
    def __init__(self, name, price, calorie):
        super().__init__(name, price)
        self.calorie = calorie

    def info(self):
        return self.name + ': ¥' + str(self.price) + '(' + str(self.calorie) + 'kcal)'

先ほど定義したクラスの「MenuItem」の内容を呼び出して、「食べ物メニュー表」の内容を定義します。こちらを「food.py」というファイル名で保存します。

#menu_itemで定義した内容の呼び出し
from menu_item import MenuItem

class Drink(MenuItem):
    def __init__(self, name, price,amount):
        super().__init__(name, price)
        self.amount = amount

    def info(self):
        return self.name + ': ¥' + str(self.price) + '(' + str(self.amount) + 'ml)'

「食べ物メニュー表」と同じように「飲み物メニュー表」の内容を定義していきます。こちらを「drink.py」というファイル名で保存します。

#foodとdrinkの内容の呼び出し
from food import Food
from drink import Drink

#食べ物のメニュー表
food1 = Food('パンケーキ', 500, 400)
food2 = Food('チョコレートパフェ', 450, 500)
food3 = Food('マカロン', 200, 250)

foods = [food1, food2, food3]

#飲み物のメニュー表
drink1 = Drink('カフェオレ', 300, 200)
drink2 = Drink('紅茶', 250, 200)
drink3 = Drink('マカ!', 1500, 100)

drinks = [drink1, drink2,drink3]

print('食べ物メニュー表')
index = 0
for food in foods:
    print(str(index) + '. ' + food.info())
    index += 1

print('飲み物メニュー表')
index = 0
for drink in drinks:
    print(str(index) + '. ' +drink.info())
    index += 1

print('-------------------------')

#食べ物と飲み物を選択
food_order = int(input('食べ物の番号を選択して下さい: '))
selected_food = foods[food_order]
drink_order = int(input('飲み物の番号を選択して下さい: '))
selected_drink = drinks[drink_order]

#数量の選択
count = int(input('何セット購入しますか?(3つ以上で1割引): '))
#合計金額の算出
result = selected_food.get_total_price(count) + selected_drink.get_total_price(count)
print('合計金額は' + str(result) + '円です。')

そして「食べ物メニュー表」と「飲み物メニュー表」の定義した内容を呼び出して処理します。


「スポンサーリンク」

 

このプログラムを実行します!

食べ物メニュー表
0. パンケーキ: ¥500(400kcal)
1. チョコレートパフェ: ¥450(500kcal)
2. マカロン: ¥200(250kcal)
飲み物メニュー表
0. カフェオレ: ¥300(200ml)
1. 紅茶: ¥250(200ml)
2. マカ!: ¥1500(100ml)
-------------------------
食べ物の番号を選択して下さい: 0
飲み物の番号を選択して下さい: 1
何セット購入しますか?(3つ以上で1割引): 1
合計金額は750円です。

メニュー表が表示され、500円の「パンケーキ」と250円の「紅茶」を1セット購入したので金額は750円となっております。

食べ物メニュー表
0. パンケーキ: ¥500(400kcal)
1. チョコレートパフェ: ¥450(500kcal)
2. マカロン: ¥200(250kcal)
飲み物メニュー表
0. カフェオレ: ¥300(200ml)
1. 紅茶: ¥250(200ml)
2. マカ!: ¥1500(100ml)
-------------------------
食べ物の番号を選択して下さい: 1
飲み物の番号を選択して下さい: 0
何セット購入しますか?(3つ以上で1割引): 4
合計金額は2700円です。

今度は450円の「チョコレートパフェ」と300円の「カフェオレ」を4セット購入したので金額が3000円。そこからの1割引なので2700円となっております。

食べ物メニュー表
0. パンケーキ: ¥500(400kcal)
1. チョコレートパフェ: ¥450(500kcal)
2. マカロン: ¥200(250kcal)
飲み物メニュー表
0. カフェオレ: ¥300(200ml)
1. 紅茶: ¥250(200ml)
2. マカ!: ¥1500(100ml)
-------------------------
食べ物の番号を選択して下さい: 2
飲み物の番号を選択して下さい: 2
何セット購入しますか?(3つ以上で1割引): 2
合計金額は3400円です。

マカで元気!

問題なく動いてますね!

一通りProgateの学習コースは終わったので、次回からは別な方法での学習・アウトプットをしていこうと思います。

ではアデュー。

asn48

福島県在住。1989年(平成元年)生まれの男です。 色々なことに興味を持って多趣味ですが、飽きやすく冷めやすい性格。 ブログについては、ゆるーく好きな時に好きなことを書いていきたいと思い始めてみました。よろしくお願い致します。

Share
Published by
asn48

Recent Posts

世界樹の迷宮1 HD REMASTER part1

どうもーASN48です。 つい…

1年 ago

ついにゲーミングPC買ったぜ!!!

どうもーASN48です。 つい…

1年 ago

世界樹の迷宮X 三人旅 社畜が世界樹へ挑む 一覧

この三人パーティで難易度ヒロイ…

2年 ago