钴60,一种用于癌症治疗的放射性形式的钴, 在一段时间内衰减。每年,在年初出现的金额的12%都会减少。如果一个装有60钴的容器最初包含10克,请确定五年后的剩余量。
我使用的代码是:
year = 0
cobalt_life = 10
while cobalt_life == 10:
cobalt_life -= 0.12*cobalt_life
year +=5
print(cobalt_life)
运行此命令时输出为8.8。应该是5.28。我想念什么?
答案 0 :(得分:2)
改为使用for
循环:
n_years = 5
cobalt_life = 10
for _ in range(n_years):
cobalt_life *= 0.88
print(cobalt_life)
# 5.277319168
已编辑
如果要使用while
循环:
n_years = 5
cobalt_life = 10
while n_years:
cobalt_life *= 0.88
n_years -= 1
print(cobalt_life)
# 5.277319168
答案 1 :(得分:0)
在while循环的第二遍中,cobalt_life不再是10(因为在第一遍中它更改了它) 您希望将循环条件设为年份,并且每次循环仅将其递增1。
答案 2 :(得分:0)
第一次迭代后,cobalt_life
不再等于10
。条件为False
,循环终止。如果要循环,则应递增year
直到达到5
。
尽管如此,请注意,您尝试执行的计算完全不需要循环,而应该使用幂运算来实现。
n_years = 5
cobalt_life = 10 * 0.88 ** 5 # 5.277319168