Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def bmi_beregner(): #her har vi lavet en bmi beregner til en funktion
- køn=str(input("Hvad er din køn: "))
- #Her skriver vi hvad programmet skal sprøge om (køn).
- BMI = 0 #en variabel, med værdien 0, defination
- 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.
- print("Mand") #her viser den at man har valgt man
- 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
- 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
- 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
- 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.
- højde=float(input("Hvad er din højde: "))
- vægt=float(input("Hvad er din vægt: "))
- BMI=float(vægt/(højde*højde))
- if BMI>25: #if betingelsen fortæller at hvis din bmi er over 25 så er du overvægtig
- print("Din BMI er",str(BMI),"du er overvægtig")
- elif BMI>20 and BMI<=25:
- #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.
- print("Du er normal")
- else:
- print("Undervægtig") #hvis det er ingen af dem så er du undervægtig
- downlist=[0,14.8,14.3] #her viser vi forskellige tal af forskellige bmi af en linje
- upperlist=[0,19.3,18.4]#her viser vi forskellige tal af forskellige bmi af en linje
- listeafbmivedalder = [[14.2,16.3,19.4],[14.2,16.3,19.4],[14.2,16.3,19.4]]
- alder = 2
- BMI=15
- if downlist[1]<BMI:
- print("Du ligger over 5 procent med lavest bmi")
- else:
- print("Du ligger over den laveste...")
- if upperlist[1]<BMI:
- print("Du ligger under de 95 procent med lavest bmi")
- else:
- print("Du ligger over den laveste...")
- #if bmi<listeafbmivedalder[0][0]:
- def kalender_beregner():#her har vi lavet en kalender til en funktion
- # Liste over tuples for måneder og datointervaller
- # + 1 tilføjet for at undgå forvirring af maks daginterval
- calender = [('Januar', range(1, 31 + 1)),
- ('Februar', range(1, 28 + 1)),
- ('Marts', range(1, 31 + 1)),
- ('April', range(1, 30 + 1)),
- ('Maj', range(1, 31 + 1)),
- ('Juni', range(1, 30 + 1)),
- ('Juli', range(1, 31 + 1)),
- ('August', range(1, 31 + 1)),
- ('September', range(1, 30 + 1)),
- ('Oktober', range(1, 31 + 1)),
- ('November', range(1, 30 + 1)),
- ('December', range(1, 31 + 1))]
- #Fra linje 41 til 52 står der navnene på månederne og antal dage for hver måned.
- week = ['Ma', 'Ti', 'On', 'To', 'Fr', 'Lø', 'Sø'] #dagen
- def make_calendar(year, start_day): #funktionen for kalenderen der bliver lavet
- """
- make_calendar(int, str) --> None
- """
- # Bestem nuværende startposition på kalender
- start_pos = week.index(start_day)
- # Hvis det er sandt, juster Feburary datointerval for springår | 29 dage
- if is_leap(year):
- calender[1] = ('Februar', range(1, 29 + 1))
- for month, days in calender:
- # Udskriv månedens titel
- print('{0} {1}'.format(month, year).center(20, ' '))
- # Printer Dag headings
- print(''.join(['{0:<3}'.format(w) for w in week]))
- # Tilføj spacing for ikke-nul startposition
- print('{0:<3}'.format('')*start_pos, end='')
- for day in days:
- # Print dage
- print('{0:<3}'.format(day), end='')
- start_pos += 1
- if start_pos == 7:
- # If start_pos == 7 (søndag) start ny linje
- print()
- start_pos = 0 # starter counter om
- print('\n')
- def is_leap(year):
- """Kontrollerer, om året er et springår"""
- if year % 4 == 0:
- if year % 100 == 0:
- if year % 400 == 0:
- return True
- else:
- return False
- else:
- return True
- else:
- return False
- yr=int(input('Indtast år:'))
- strtday=input('Indtast den første dag af året Ma,Ti,On,To,Fr,Lø,Sø')
- make_calendar(yr,strtday)
- def fedt():
- def output():
- while True:
- try:
- x = float(input("Indtast dit vægt (lb): "))
- except ValueError:
- print("Skriv et tal!")
- continue
- break
- while True:
- try:
- y = float(input("Hvad er din nuværende kropsfedtprocent? (>1): "))
- except ValueError:
- print("Skriv et tal!")
- continue
- break
- while True:
- try:
- z = float(input("Hvad er din ønskede kropsfedtprocent? (>1): "))
- except ValueError:
- print("Skriv et tal!")
- continue
- break
- A = (x*(y/100-z/100))/(1-z/100)
- B = x - A
- print("Dit nødvendige vægttav er %.1f lb, og \
- din endelige vægt vil være %.1f lb" % (A,B))
- while True:
- again = input("Beregn igen? ")
- if again.lower() in ["ja", "y", "Ja", "ok", "", "okay"]:
- output()
- else:
- print("Okay")
- break
- output()
- def weight():
- a = "pounds";
- kilo = "kilo";
- print("Indtast pounds eller kilo for konverteringer")
- a = str(input("pounds or kilogram? "));
- if a == 'pounds':
- pounds = input("Indtast et tal i kilo for at konvertere til pounds: ");
- pounds = float(pounds) * 2.2;
- print("pounds;",str(pounds))
- elif kilo == 'kilo':
- kilo = str(input("Indtast et tal i pounds for at konvertere til kg: "));
- kilo = float(kilo) / 2.2;
- print("kilo;",str(kilo))
- def treadmill():
- # oo-calorie_counter.py
- from abc import ABC, abstractmethod
- def main():
- person_attributes = get_person_attributes()
- person = PersonFactory.make_person(person_attributes)
- print("Du har brændt cirka {0} kalorier".format(round(person.calories_burned, 1)))
- def get_person_attributes():
- person_attributes = {
- 'gender': input('Dit køn: '),
- 'weight_kg': int(input('Din vægt i kg: ')),
- 'age': int(input('Din alder: ')),
- 'bpm': int(input('Din puls: ')),
- 'exercise_duration_min': int(input('Din træningstid i minutter: '))
- }
- return person_attributes #returnere den person attributes så man kan bruge den igen
- class PersonFactory:
- @staticmethod
- def make_person(person_attributes):
- gender = person_attributes['gender']
- del person_attributes['gender']
- if gender.lower() == 'mand':
- return Male(**person_attributes)
- elif gender.lower() == 'kvinde':
- return Female(**person_attributes)
- else:
- raise RuntimeError('Unknown gender')
- class Person(ABC):
- def __init__(self, weight_kg, bpm, age, exercise_duration_min):
- self.weight_kg = weight_kg
- self.age = age
- self.bpm = bpm
- self.exercise_duration_min = exercise_duration_min
- @property
- @abstractmethod
- def calories_burned(self):
- raise NotImplementedError #den bruges så systemet ved at programmet stadig er i udvikling
- class Male(Person):
- @property
- def calories_burned(self):
- return ((self.age * 0.2017) - (self.weight_kg * 0.09036) + (self.bpm * 0.6309) - 55.0969) * self.exercise_duration_min / 4.184
- class Female(Person):
- @property
- def calories_burned(self):
- return ((self.age * 0.074) - (self.weight_kg * 0.05741) + (self.bpm * 0.4472) - 20.4022) * self.exercise_duration_min / 4.184
- if __name__ == '__main__':
- main()
- def mainMenu():
- print("1. Beregn din BMI")
- print("2. Kalender")
- print("3. Fedt Beregner")
- print("4. Vægt converter")
- print("5. Kalorie Treadmill")
- print("6. Exit")
- selection=int(input("Skriv dit valg: "))
- if selection==1:
- bmi_beregner()
- elif selection==2:
- kalender_beregner()
- elif selection==3:
- fedt()
- elif selection==4:
- weight()
- elif selection==5:
- treadmill()
- elif selection==6:
- exit()
- else:
- print("Tast et tal fra 1-6")
- mainMenu()
- mainMenu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement