A bar shop has a ten-day promotion. During this period, the price of an beer drops 10 percent each day. For example, a beer that costs 10$ on the first day costs $9 on the second day and $8.1 on the third day.
I want to write a python function that uses yield
keyword to calculate beer price each day.
For instance if we give input 10, My expected output is:
Price is discounted to : 9
Price is discounted to : 8.1
..etc
class DiscountCalc:
def get_item_price(self):
return input('Input a starting price (0 to quit): ')
def discount(self, current_price, days):
yield (current_price - (current_price*10)//100)
def run(self):
initial = self.get_item_price()
for price in self.discount(initial, 10):
print "Price is discounted to : " + str(price)
DiscountCalc().run()
it's due to the cycle, this should fix it:
def discount(self, current_price, days):
for day in range(days):
yield current_price
current_price = current_price * 0.9
def run(self):
initial = self.get_item_price()
for price in self.discount(initial, 10):
print(price)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.