どうもー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の学習コースは終わったので、次回からは別な方法での学習・アウトプットをしていこうと思います。
ではアデュー。