我该如何编写一个while循环来遍历几个小时来发现咖啡因的吸收情况?

2024-06-26 04:04:16 发布

您现在位置:Python中文网/ 问答频道 /正文

咖啡因被人体吸收后,13%的咖啡因被消除 每小时从尸体上。假设一个人喝了一杯8盎司的冲泡咖啡,里面含有130毫克的咖啡因,而咖啡因会立即被人体吸收。你知道吗

我正在编写一个程序来计算以下值:

a)在体内停留少于65mg(原量的一半)所需的小时数。你知道吗

b)假设此人在早上7点喝一杯咖啡,然后在每小时结束时喝一杯咖啡,直到第二天早上7点。在24小时结束时体内会有多少咖啡因?你知道吗

这是我的密码:

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

为什么这对a不起作用?我如何形成b的条件声明?你知道吗


Tags: in程序密码body人体条件小时咖啡
2条回答

循环不起作用,因为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))

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

假设每小时喝一杯咖啡,你可以在24小时后使用for循环让咖啡因进入体内。例如:

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

相关问题 更多 >