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 part2

どうもーASN48です。 なん…

3週間 ago

世界樹の迷宮1 HD REMASTER part1

どうもーASN48です。 つい…

1年 ago

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

どうもーASN48です。 つい…

2年 ago

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

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

3年 ago