我是python的新手,正在尝试通过做一些小型项目来学习。
锶90,一种放射性元素,是放射性尘埃的一部分 核爆炸的半衰期为28年。这意味着给定数量 锶90会发射放射性粒子,并会衰减到其大小的一半 28年100克锶90衰减到更少需要多少年 超过1克?
我的输入代码:
full_life = int(100)
while full_life < int(1):
full_life -= 0.5*full_life
year +=28
print("The decay time is:",year)
运行上述命令时,不会生成任何输出。为什么会这样呢?我想念什么?
答案 0 :(得分:4)
当循环逻辑取反时应为:
while full_life > int(1):
答案 1 :(得分:1)
马上就使full_life为100,立即检查while循环中的条件是否为假(因为100 <1为假)。由于它是错误的,因此您将不会循环。我想您正在寻找的是将符号从<切换到>
attr(df1_xts, 'frequency') <- 2
decompose(ts(df1_xts))
Error in decompose(ts(df1_xts)) :
time series has no or less than 2 periods
到
full_life = int(100)
while full_life < int(1):
do stuff
答案 2 :(得分:0)
像这样反转while循环逻辑之后:
while full_life>1:
do something
将出现另一个问题。 您没有定义“年份” 您应该这样做:
year=0
答案 3 :(得分:0)
full_life
代表您拥有的锶量。最初,您有100克,并且从0年开始。
year = 0
full_life = 100
您要减小full_life
直到小于 1克,这意味着您只要执行full_life
大于等于或等于1。
while full_life >= 1:
full_life /= 2
year +=28
print("The decay time is:",year)
每次条件为真时,您将full_life
分成两半,然后将year
增加28年。循环完成后,由于错误,您可以输出出现这种情况之前的总年数。
请注意,这并不是完全正确的,因为质量在28年内一直没有保持恒定,然后立即下降了2倍。如果从1克锶开始,这是最明显的。它的任何衰变不需要28年。
您真正需要做的是选择一个粒度(小时,天,月,任何时间),并从半衰期中找出在这段时间内有多少样品会衰减。然后,您可以减少full_life
的数量,同时增加时间,以找出full_life
最终降到1以下的时间。