Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.46 KB | None | 0 0
  1. def bmi_beregner(): #her har vi lavet en bmi beregner til en funktion
  2. køn=str(input("Hvad er din køn: "))
  3. #Her skriver vi hvad programmet skal sprøge om (køn).
  4. BMI = 0 #en variabel, med værdien 0, defination
  5. if køn=="m" or køn=="mand" or køn=="Mand": #I denne linje angiver man hvilken måder man kan skrive køn.
  6. print("Mand") #her viser den at man har valgt man
  7. højde=float(input("Hvad er din højde: ")) #spørger om hvad ens højde er så har vi sat højde som definationen så vi kan se resultatet
  8. vægt=float(input("Hvad er din vægt: ")) #spørger om hvad ens vægt er så har vi sat vægt som definationen så vi kan se resultatet
  9. BMI=float(vægt/(højde*højde)) #her bliver der så beregnet vægt divideret med højde som bliver ganget med højde
  10. elif køn=="k" or køn=="kvinde" or køn=="Kvinde": #I denne linje angiver man hvilken måder man kan skrive køn.
  11. højde=float(input("Hvad er din højde: "))
  12. vægt=float(input("Hvad er din vægt: "))
  13. BMI=float(vægt/(højde*højde))
  14. if BMI>25: #if betingelsen fortæller at hvis din bmi er over 25 så er du overvægtig
  15. print("Din BMI er",str(BMI),"du er overvægtig")
  16. elif BMI>20 and BMI<=25:
  17. #Du er normal hvis din BMI ligger på 20 til 25, du er undervægtig hvis din BMI ligger under 20 og du er overvægtig hvis den er over over 25.
  18. print("Du er normal")
  19. else:
  20. print("Undervægtig") #hvis det er ingen af dem så er du undervægtig
  21.  
  22. downlist=[0,14.8,14.3] #her viser vi forskellige tal af forskellige bmi af en linje
  23. upperlist=[0,19.3,18.4]#her viser vi forskellige tal af forskellige bmi af en linje
  24. listeafbmivedalder = [[14.2,16.3,19.4],[14.2,16.3,19.4],[14.2,16.3,19.4]]
  25. alder = 2
  26. BMI=15
  27.  
  28. if downlist[1]<BMI:
  29. print("Du ligger over 5 procent med lavest bmi")
  30. else:
  31. print("Du ligger over den laveste...")
  32. if upperlist[1]<BMI:
  33. print("Du ligger under de 95 procent med lavest bmi")
  34. else:
  35. print("Du ligger over den laveste...")
  36. #if bmi<listeafbmivedalder[0][0]:
  37. def kalender_beregner():#her har vi lavet en kalender til en funktion
  38. # Liste over tuples for måneder og datointervaller
  39. # + 1 tilføjet for at undgå forvirring af maks daginterval
  40. calender = [('Januar', range(1, 31 + 1)),
  41. ('Februar', range(1, 28 + 1)),
  42. ('Marts', range(1, 31 + 1)),
  43. ('April', range(1, 30 + 1)),
  44. ('Maj', range(1, 31 + 1)),
  45. ('Juni', range(1, 30 + 1)),
  46. ('Juli', range(1, 31 + 1)),
  47. ('August', range(1, 31 + 1)),
  48. ('September', range(1, 30 + 1)),
  49. ('Oktober', range(1, 31 + 1)),
  50. ('November', range(1, 30 + 1)),
  51. ('December', range(1, 31 + 1))]
  52. #Fra linje 41 til 52 står der navnene på månederne og antal dage for hver måned.
  53.  
  54. week = ['Ma', 'Ti', 'On', 'To', 'Fr', 'Lø', 'Sø'] #dagen
  55.  
  56. def make_calendar(year, start_day): #funktionen for kalenderen der bliver lavet
  57. """
  58. make_calendar(int, str) --> None
  59. """
  60. # Bestem nuværende startposition på kalender
  61. start_pos = week.index(start_day)
  62.  
  63. # Hvis det er sandt, juster Feburary datointerval for springår | 29 dage
  64. if is_leap(year):
  65. calender[1] = ('Februar', range(1, 29 + 1))
  66.  
  67. for month, days in calender:
  68. # Udskriv månedens titel
  69. print('{0} {1}'.format(month, year).center(20, ' '))
  70. # Printer Dag headings
  71. print(''.join(['{0:<3}'.format(w) for w in week]))
  72. # Tilføj spacing for ikke-nul startposition
  73. print('{0:<3}'.format('')*start_pos, end='')
  74.  
  75. for day in days:
  76. # Print dage
  77. print('{0:<3}'.format(day), end='')
  78. start_pos += 1
  79. if start_pos == 7:
  80. # If start_pos == 7 (søndag) start ny linje
  81. print()
  82. start_pos = 0 # starter counter om
  83. print('\n')
  84.  
  85. def is_leap(year):
  86. """Kontrollerer, om året er et springår"""
  87. if year % 4 == 0:
  88. if year % 100 == 0:
  89. if year % 400 == 0:
  90. return True
  91. else:
  92. return False
  93. else:
  94. return True
  95. else:
  96. return False
  97. yr=int(input('Indtast år:'))
  98. strtday=input('Indtast den første dag af året Ma,Ti,On,To,Fr,Lø,Sø')
  99. make_calendar(yr,strtday)
  100.  
  101. def fedt():
  102. def output():
  103. while True:
  104. try:
  105. x = float(input("Indtast dit vægt (lb): "))
  106. except ValueError:
  107. print("Skriv et tal!")
  108. continue
  109. break
  110. while True:
  111. try:
  112. y = float(input("Hvad er din nuværende kropsfedtprocent? (>1): "))
  113. except ValueError:
  114. print("Skriv et tal!")
  115. continue
  116. break
  117. while True:
  118. try:
  119. z = float(input("Hvad er din ønskede kropsfedtprocent? (>1): "))
  120. except ValueError:
  121. print("Skriv et tal!")
  122. continue
  123. break
  124. A = (x*(y/100-z/100))/(1-z/100)
  125. B = x - A
  126. print("Dit nødvendige vægttav er %.1f lb, og \
  127. din endelige vægt vil være %.1f lb" % (A,B))
  128.  
  129.  
  130. while True:
  131. again = input("Beregn igen? ")
  132.  
  133. if again.lower() in ["ja", "y", "Ja", "ok", "", "okay"]:
  134. output()
  135.  
  136. else:
  137. print("Okay")
  138. break
  139. output()
  140.  
  141. def weight():
  142. a = "pounds";
  143. kilo = "kilo";
  144. print("Indtast pounds eller kilo for konverteringer")
  145. a = str(input("pounds or kilogram? "));
  146. if a == 'pounds':
  147. pounds = input("Indtast et tal i kilo for at konvertere til pounds: ");
  148. pounds = float(pounds) * 2.2;
  149. print("pounds;",str(pounds))
  150. elif kilo == 'kilo':
  151. kilo = str(input("Indtast et tal i pounds for at konvertere til kg: "));
  152. kilo = float(kilo) / 2.2;
  153. print("kilo;",str(kilo))
  154. def treadmill():
  155. # oo-calorie_counter.py
  156. from abc import ABC, abstractmethod
  157.  
  158.  
  159. def main():
  160. person_attributes = get_person_attributes()
  161. person = PersonFactory.make_person(person_attributes)
  162.  
  163. print("Du har brændt cirka {0} kalorier".format(round(person.calories_burned, 1)))
  164.  
  165.  
  166. def get_person_attributes():
  167. person_attributes = {
  168. 'gender': input('Dit køn: '),
  169. 'weight_kg': int(input('Din vægt i kg: ')),
  170. 'age': int(input('Din alder: ')),
  171. 'bpm': int(input('Din puls: ')),
  172. 'exercise_duration_min': int(input('Din træningstid i minutter: '))
  173. }
  174.  
  175. return person_attributes #returnere den person attributes så man kan bruge den igen
  176.  
  177. class PersonFactory:
  178. @staticmethod
  179. def make_person(person_attributes):
  180. gender = person_attributes['gender']
  181. del person_attributes['gender']
  182. if gender.lower() == 'mand':
  183. return Male(**person_attributes)
  184. elif gender.lower() == 'kvinde':
  185. return Female(**person_attributes)
  186. else:
  187. raise RuntimeError('Unknown gender')
  188.  
  189. class Person(ABC):
  190. def __init__(self, weight_kg, bpm, age, exercise_duration_min):
  191. self.weight_kg = weight_kg
  192. self.age = age
  193. self.bpm = bpm
  194. self.exercise_duration_min = exercise_duration_min
  195.  
  196. @property
  197. @abstractmethod
  198. def calories_burned(self):
  199. raise NotImplementedError #den bruges så systemet ved at programmet stadig er i udvikling
  200.  
  201.  
  202. class Male(Person):
  203. @property
  204. def calories_burned(self):
  205. return ((self.age * 0.2017) - (self.weight_kg * 0.09036) + (self.bpm * 0.6309) - 55.0969) * self.exercise_duration_min / 4.184
  206.  
  207.  
  208. class Female(Person):
  209. @property
  210. def calories_burned(self):
  211. return ((self.age * 0.074) - (self.weight_kg * 0.05741) + (self.bpm * 0.4472) - 20.4022) * self.exercise_duration_min / 4.184
  212.  
  213.  
  214. if __name__ == '__main__':
  215. main()
  216. def mainMenu():
  217. print("1. Beregn din BMI")
  218. print("2. Kalender")
  219. print("3. Fedt Beregner")
  220. print("4. Vægt converter")
  221. print("5. Kalorie Treadmill")
  222. print("6. Exit")
  223. selection=int(input("Skriv dit valg: "))
  224. if selection==1:
  225. bmi_beregner()
  226. elif selection==2:
  227. kalender_beregner()
  228. elif selection==3:
  229. fedt()
  230. elif selection==4:
  231. weight()
  232. elif selection==5:
  233. treadmill()
  234. elif selection==6:
  235. exit()
  236. else:
  237. print("Tast et tal fra 1-6")
  238. mainMenu()
  239. mainMenu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement