咖啡因吸收到体内后,消除了13% 从身体每小时。假设一个人喝了一杯8盎司的冲泡咖啡,其中包含130毫克咖啡因,并且咖啡因会立即被人体吸收。
我正在编写一个程序来计算以下值:
a)直到体内剩余不到65毫克(原始量的一半)所需的小时数。
b)假设该人在早上7点喝一杯咖啡,然后在每个小时结束时喝一杯咖啡,直到第二天早上7点为止。 24小时结束后体内会含有多少咖啡因?
这是我的代码:
hour = 0
in_body = 130
while in_body == 65:
hour -= 0.13*in_body
hour +=1
为什么这对a不起作用?如何为b形成条件语句?
答案 0 :(得分:3)
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
答案 1 :(得分:0)
该循环不起作用,因为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))