Po wchłanianiu kofeiny 13% jest wyeliminowany z organizmu co godzinę. Zakłada, że osoba pije 8-ung kubek parzonej kawy zawierającej 130 mg kofeiny i że kofeina jest natychmiast wchłaniana do organizmu.

Piszę program, aby obliczyć następujące wartości:

A) Liczba godzin wymaganych do mniej niż 65 mg (jedna połowa pierwotnej kwoty) pozostanie w organizmie.

B) Załóżmy, że osoba pije filiżankę kawy o 7 A.m. a następnie pije filiżankę kawy na końcu każdej godziny do 7 rano. Następnego dnia. Ile kofeiny będzie w ciele pod koniec 24 godzin?

Oto mój kod:

hour = 0
in_body = 130
while in_body == 65:
    hour -= 0.13*in_body
    hour +=1

Dlaczego to nie działa dla A i jak utworzyć oświadczenie o stanie dla b?

1
user10700950 20 luty 2019, 21:05

1 odpowiedź

Najlepsza odpowiedź

in_body nigdy nie zmienia się od 130, więc podczas gdy pętla nigdy się nie wykonuje. Spróbuj czegoś takiego:

hours = 0
caffeine = 130
while caffeine > 65:
    caffeine *= 0.87
    hours +=1

print(f'{caffeine} mg of caffeine in body after {hours} hours')
# 64.794719691 mg of caffeine in body after 5 hours

Możesz użyć pętli do pętli, aby uzyskać kofeinę w ciele po 24 godzinach, zakładając, że kubek jest spożywany co godzinę. Na przykład:

hours = 24
caffeine = 0
for _ in range(hours):
    caffeine = caffeine * 0.87 + 130

print(f'{caffeine} mg of caffeine in body after {hours} hours')
# 964.6440864884751 mg of caffeine in body after 24 hours
3
benvc 20 luty 2019, 19:43