Как написать цикл while, который повторяет количество часов, чтобы найти поглощение кофеина? - PullRequest
0 голосов
/ 20 февраля 2019

После поглощения кофеина организмом 13% выводится из организма каждый час.Предположим, что человек выпивает чашку заваренного кофе на 8 унций, содержащего 130 мг кофеина, и что кофеин немедленно всасывается в организм.

Я пишу программу для расчета следующих значений:

а) Количество часов, необходимое для того, чтобы в организме осталось менее 65 мг (половина исходного количества).

б) Предположим, что человек выпивает чашку кофе в 7 часов утра, а затем выпиваетчашка кофе в конце каждого часа до 7 утра следующего дня.Сколько кофеина будет в организме в конце 24 часов?

Вот мой код:

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

Почему это не сработает, и как мне сформировать условиезаявление для б?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Цикл не работает, потому что in_body равен 130, поэтому он не равен 65, и цикл while никогда не выполняется.

Кроме того, тело цикла уменьшает hour на 13процентов, но это неправильно - вы хотите уменьшить in_body, а не hour.

Вы, вероятно, хотели что-то вроде этого:

hour = 0
in_body = 130
while in_body > 65:
    in_body = in_body * 0.87
    hour +=1

print('After %d hours, %d mgs of caffeine remain in the body' % (hour, in_body))
0 голосов
/ 20 февраля 2019

in_body никогда не меняется со 130, поэтому ваш цикл while никогда не выполняется.Попробуйте что-то вроде:

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

Вы можете использовать цикл for, чтобы получить кофеин в организме через 24 часа, предполагая, что чашка потребляется каждый час.Например:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...