Python :: Aufgabe #97

5 Lösungen Lösungen öffentlich

Digitale Kalorienüberwachung

Anfänger - Python von Energy - 09.03.2016 um 14:25 Uhr
Erstelle ein Programm, das dich nach deinen gegessenen Nahrungsmitteln und deren Kalorien fragt. Diese Infos sollen in einem Dictionary (ggf. auch Liste oder Array) gespeichert werden. Nach jeder Nahrungsmitteleingabe soll gefragt werden, ob du noch weitere Nahrungsmittel gegessen hast.
Wurden keine weiteren Nahrungsmittel verzehrt, soll ausgerechnet werden, wie viele Kalorien du an diesem Tag aufgenommen hast.

Zusatz: Bei 60 Minuten schwimmen verbrennt man ungefähr 400 Karolinen. 30 Minuten spazieren verbrennt 50 Kalorien. Wie lange müsste man spazieren oder schwimmen, um die heute zugenommenen Kalorien wieder zu verbrennen? Berechne diese Werte und gebe sie mit den Verbrannten Kalorien aus.

Lösungen:

vote_ok
von jigga (4260 Punkte) - 13.03.2016 um 11:04 Uhr
Quellcode ausblenden Python-Code
liste = []

def mehr():
	liste.append(input("Was hast du noch gegessen?\n"))
	while True:
		try:
			liste.append(int(input("Wie viele Kalorien hat es?\n")))
			print()
			break
		except:
			print("Bitte nur ganze Zahlen!\n")
			continue			
	repeat()

def repeat():
	weiter = str(input("Hast du sonst noch etwas gegessen? (y/n)\n"))
	print()
	if weiter == 'Y' or weiter == 'y':
		mehr()

	else:
		ende()

def ende():
	kal = 0
	for i in range(1, len(liste), 2):
		kal += int(liste[i])
	print("Du hast heute", kal, "Kalorien zu dir genommen.")
	print("Du musst etwa", int(30*kal/50), "Mintuen Spazieren, oder", int(60*kal/400), "Minuten Schwimmen.")
	
liste.append(input("Was hast du heute gegessen?\n"))
while True:
	try:
		liste.append(int(input("Wie viele Kalorien hat es?\n")))
		print()
		break
	except:
		print("Bitte nur ganze Zahlen!\n")
		continue
repeat()
1x
vote_ok
von devnull (8870 Punkte) - 22.03.2016 um 20:20 Uhr
Quellcode ausblenden Python-Code
#!/usr/bin/python3
import math

CPM_SWIMMING = 400./60.
CPM_WALKING = 50./30.

def tofloat(s):
    try:
        return float(s)
    except ValueError:
        return -1.
        
foods = {}
food = input("Was hast du heute gegessen     : ")
while True:
	incal = input("Wie viele Kalorien hat es      : ")
	calories = tofloat(incal)
	if calories >= 0:
		foods[food] = calories
	else:
		print("Die Kalorienzahl ist nicht numerisch!")
		continue
	answer = input("Hast du noch etwas gegessen? ").lower()
	if answer[0] == 'n':
		break
	food = input("Was hast du heute noch gegessen: ")

sum_calories = sum(foods.values())
time_swimming = math.ceil(sum_calories/CPM_SWIMMING)
time_walking = math.ceil(sum_calories/CPM_WALKING)
print("\nDu hast {:.0f} Kalorien zu dir genommen.".format(sum_calories))
print("Du musst {:.0f} Minuten spazieren oder {:.0f} Minuten schwimmen.".format(time_walking, time_swimming))
vote_ok
von Cryptt (390 Punkte) - 17.08.2016 um 15:55 Uhr
Quellcode ausblenden Python-Code
# Digitale Kalorienueberwachung
cal_liste = []

def eingabe():
    cal_eingabe = []
    print('Was hast Du heute gegessen?')
    cal_eingabe.append(input())
    cal_eingabe.append(int(input('Wieviele Kalorien: ')))

    cal_liste.append(cal_eingabe)

def auswertung():
    cal_gesamt = 0
    for i in range(len(cal_liste)):
        cal_gesamt += cal_liste[i][1]
    
    print('Du hast heute',cal_gesamt,'Kalorien zu Dir genommen.')
    print('Du musst entweder',((cal_gesamt/100)*60),
          'Minuten spazieren oder',((cal_gesamt/400)*60),'Minuten schwimmen')

while True:
    eingabe()   
    entscheidung = input('Hast Du noch etwas gegessen (j/n)')
    if entscheidung == ('n' or 'N'):
        break

auswertung()
1x
vote_ok
von Nachbar (2820 Punkte) - 03.09.2016 um 15:40 Uhr
Quellcode ausblenden Python-Code
# -*- coding: utf-8 -*-

food_to_calories = {}
x = 0
summe = 0

while x == 0:
    y = 0    
    lebensmittel = raw_input("\nNahrungsmittel: ")
    while y == 0:
        try:
            kalorien = input("Enthaltene Kalorien: ")
            y = 1
        except:
            print "Bitte einen numerischen Wert eingeben!\n"
    food_to_calories[lebensmittel] = kalorien   
    summe = summe + food_to_calories.get(lebensmittel) 
    fortfahren = raw_input("\nHast du noch mehr gegessen? (j / n) ")
    if fortfahren == "n":
        x = 1
    
print "\nDu hast heute " + str(summe) + " Kalorien zu dir genommen. \nGehe " + \
str(summe * 60 / 400) + " Minuten schwimmen oder " + str(summe * 30 / 50) + \
" Minuten spazieren, um die Kalorien zu verbrennen."
vote_ok
von Y0uLyric (500 Punkte) - 10.12.2016 um 12:19 Uhr
Quellcode ausblenden Python-Code
def eingabe():

        global gerichte
        gerichte = []

        global kcal
        kcal = []

        t = 1
        while t == 1:
                gericht = input("Was haben Sie gegessen? ")
                kal = int(input("Wieviele kcal hatte es? "))
                gerichte.append(gericht)
                kcal.append(kal)
                nochwas = input("Haben sie noch etwas gegessen? (ja/nein) ")
                if nochwas == "nein":
                        t = 0
                else:
                        None

def list_to_dict(gerichte, kcal):

        global gerichte_kcal_dict
        gerichte_kcal = list(zip(gerichte, kcal))
        gerichte_kcal_dict = dict(gerichte_kcal)

def bilanz_berechnen(gerichte_kcal_dict):

        global gesamtbilanz
        gesamtbilanz = 0

        for k in gerichte_kcal_dict.values():
                gesamtbilanz += k

def kcal_verbrennen(gesamtbilanz):

        min_schwimmen = 6.6666666667
        min_spazieren = 1.6666666667

        global schwimmen
        global spazieren

        schwimmen = gesamtbilanz // min_schwimmen
        spazieren = gesamtbilanz // min_schwimmen

def ausgabe(gerichte_kcal_dict, gesamtbilanz, schwimmen, spazieren):

        print("Das haben Sie heute gegessen:    " + str(gerichte_kcal_dict))

        bilanz_wissen = input("Wollen Sie Ihre Gesamtbilanz an Kcal wissen? (J/N): ")
        if bilanz_wissen == "j" or bilanz_wissen == "J":
                print("Ihre Gesamtbilanz beträgt: " + str(gesamtbilanz) + " Kcal.")

        verbrennen_wissen = input("Wollen Sie wissen, wie Sie die Kcal verbrennen können? (J/N): ")
        if verbrennen_wissen == "j" or verbrennen_wissen == "J":
                t = 1
                while t == 1:
                        schwimmen_oder_spazieren = input("Durch Schwimmen, oder durch Spazieren? (schwimmen/spazieren): ")
                        if schwimmen_oder_spazieren == "schwimmen" or schwimmen_oder_spazieren == "Schwimmen":
                                print(str(schwimmen) + " Minuten schwimmen")
                                t = 0
                        elif schwimmen_oder_spazieren == "spazieren" or schwimmen_oder_spazieren == "Spazieren":
                                print(str(spazieren) + " Minuten spazieren")
                                t = 0
                        else:
                                print("Fehler: Nur [schwimmen] oder [spazieren] möglich")

eingabe()
list_to_dict(gerichte, kcal)
bilanz_berechnen(gerichte_kcal_dict)
kcal_verbrennen(gesamtbilanz)
ausgabe(gerichte_kcal_dict, gesamtbilanz, schwimmen, spazieren)

1814023

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.