合計金額を割引
下記の例は、1個325円のりんごを何個購入するかを入力することで、合計金額が表示されるようにします。
また、3個以上購入すると1割引されるようにしました。
script.py
from utils import FruitMenu
fruit_menu1 = FruitMenu('りんご', 325)
print(fruit_menu1.fruit_info())
count = int(input('購入するりんごの個数を入力してください(3個で1割引):'))
result = fruit_menu1.get_total_price(count)
print('合計金額は'+ str(result) +'円です')
utils.py
class FruitMenu:
def __init__(self, name, price):
self.name = name
self.price = price
def fruit_info(self):
return self.name + ':' + str(self.price) + '円です'
def get_total_price(self, count):
total_price = self.price * count
if count >= 3:
total_price *= 0.9
return round(total_price) # 四捨五入するためにroundを用います
出力結果
りんご:300円です
購入するりんごの個数を入力してください(3個で1割引):2 と入力した場合、
合計金額は650円です
りんご:300円です
購入するりんごの個数を入力してください(3個で1割引):3 と入力した場合、
合計金額は878円です
上記では、関数get_total_price()
を呼び出し、りんごの購入する個数に対する金額を戻り値として返すように処理になっています。
まず、1個325円のりんごを購入する個数でかけて、変数total_price
に入れます。
そして、3個以上だと1割引なので、if
文を用いて条件式count >= 3
とし処理をtotal_price *= 0.9
と記述することで、購入する個数が3個以上であれば合計金額から1割引である0.9をかけ、再び変数total_price
に入れます。2個以下の場合は処理させる必要が無いので、elseを用いて処理を記述する必要はありません。
そして呼び出し元に返す時、料金では小数点は必要ないので整数で出力するために**round
**を用います。
これにより、整数で求めていた合計金額を出力することができます。
round
roundを用いることで、小数を四捨五入した結果の整数を取得することができます。
例
number = 7 * 0.6
print(round(number))
出力結果
4