Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- """ Tells you how many beers you can drink given the following criteria:
- Return 2 empty beer bottles for 1 free beer.
- Return 4 beer bottle caps for 1 free beer.
- """
- class BeerDrinker:
- RETURNBTLS = 2
- RETURNCAPS = 4
- def __init__(self, starting_beer):
- self.starting_beer = starting_beer
- self.beers = starting_beer
- self.bottles = 0
- self.caps = 0
- self.beers_consumed = 0
- self.recycled_caps = 0
- self.recycled_bottles = 0
- def haveone(self):
- """Drink one beer"""
- if self.beers:
- print('Drinking a beer')
- self.beers -= 1
- self.bottles += 1
- self.caps += 1
- self.beers_consumed += 1
- return True
- return False
- def recycle(self):
- if self.bottles >= self.RETURNBTLS:
- print('Recycled Bottle')
- self.bottles -= self.RETURNBTLS
- self.recycled_bottles += 1
- self.beers += 1
- if self.caps >= self.RETURNCAPS:
- print('Recycled Caps')
- self.caps -= self.RETURNCAPS
- self.recycled_caps += 1
- self.beers += 1
- def status(self):
- print('{}\nStarted with {} beers.\nYou drank {} beers.\n'
- 'You recycled {} bottles and {} caps.\n'
- 'You have {} bottles and {} caps left.'.format(
- '-'*50,
- self.starting_beer, self.beers_consumed,
- self.recycled_bottles, self.recycled_caps,
- self.bottles, self.caps
- ))
- def drinkem(self):
- while self.haveone(): self.recycle()
- self.status()
- if __name__ == '__main__':
- if len(sys.argv) > 1:
- try:
- startingbeers = int(sys.argv[1])
- except ValueError:
- print("You're drunk %s is not a number...\nGO HOME" % sys.argv[1])
- sys.exit(1)
- else:
- print("Must pass number of beers as first argument!")
- sys.exit(1)
- if startingbeers < 0:
- print("Be positive you fool!")
- sys.exit(1)
- if startingbeers == 0:
- print("You must drink some beer!")
- sys.exit(1)
- soon_to_be_drunk_person = BeerDrinker(startingbeers)
- soon_to_be_drunk_person.drinkem()
Add Comment
Please, Sign In to add comment