咖啡因被人体吸收后,每小时会有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的条件语句?
发布于 2019-02-20 18:12:18
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
发布于 2019-02-20 18:15:41
循环不工作,因为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))
https://stackoverflow.com/questions/54792677
复制