Guest User

Untitled

a guest
Nov 24th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. import sys
  2.  
  3. """ Tells you how many beers you can drink given the following criteria:
  4.  
  5. Return 2 empty beer bottles for 1 free beer.
  6. Return 4 beer bottle caps for 1 free beer.
  7. """
  8.  
  9. class BeerDrinker:
  10. RETURNBTLS = 2
  11. RETURNCAPS = 4
  12.  
  13. def __init__(self, starting_beer):
  14. self.starting_beer = starting_beer
  15. self.beers = starting_beer
  16. self.bottles = 0
  17. self.caps = 0
  18. self.beers_consumed = 0
  19. self.recycled_caps = 0
  20. self.recycled_bottles = 0
  21.  
  22. def haveone(self):
  23. """Drink one beer"""
  24. if self.beers:
  25. print('Drinking a beer')
  26. self.beers -= 1
  27. self.bottles += 1
  28. self.caps += 1
  29. self.beers_consumed += 1
  30. return True
  31. return False
  32.  
  33. def recycle(self):
  34. if self.bottles >= self.RETURNBTLS:
  35. print('Recycled Bottle')
  36. self.bottles -= self.RETURNBTLS
  37. self.recycled_bottles += 1
  38. self.beers += 1
  39.  
  40. if self.caps >= self.RETURNCAPS:
  41. print('Recycled Caps')
  42. self.caps -= self.RETURNCAPS
  43. self.recycled_caps += 1
  44. self.beers += 1
  45.  
  46. def status(self):
  47. print('{}\nStarted with {} beers.\nYou drank {} beers.\n'
  48. 'You recycled {} bottles and {} caps.\n'
  49. 'You have {} bottles and {} caps left.'.format(
  50. '-'*50,
  51. self.starting_beer, self.beers_consumed,
  52. self.recycled_bottles, self.recycled_caps,
  53. self.bottles, self.caps
  54. ))
  55.  
  56. def drinkem(self):
  57. while self.haveone(): self.recycle()
  58. self.status()
  59.  
  60.  
  61. if __name__ == '__main__':
  62.  
  63. if len(sys.argv) > 1:
  64. try:
  65. startingbeers = int(sys.argv[1])
  66. except ValueError:
  67. print("You're drunk %s is not a number...\nGO HOME" % sys.argv[1])
  68. sys.exit(1)
  69. else:
  70. print("Must pass number of beers as first argument!")
  71. sys.exit(1)
  72.  
  73. if startingbeers < 0:
  74. print("Be positive you fool!")
  75. sys.exit(1)
  76. if startingbeers == 0:
  77. print("You must drink some beer!")
  78. sys.exit(1)
  79.  
  80. soon_to_be_drunk_person = BeerDrinker(startingbeers)
  81. soon_to_be_drunk_person.drinkem()
Add Comment
Please, Sign In to add comment