当已知碳的百分比仍然是c14(35%)时,我试着写一段代码来计算化石是什么时候形成的。我假设它的半衰期介于半衰期和半衰期的两倍之间,因此我提供的范围是:
t=np.arange(5730,5730*2,1)
while t in range(5730,5730*2):
if 0.5**(t/5700)>0.35:
t+=1
else:
break
print(t)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-101-cb11e85c664a> in <module>
4 t=np.arange(5730,5730*2,1)
5
----> 6 while t in range(5730,5730*2):
7 if 0.5**(t/5700)>0.35:
8 t+=1
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
x in y在您的场景中没有意义
t在range(…)中要求t是单个值,但它是一个元素
numpy做了一些奇怪的事情告诉你它期望一个值但是你有一个数组
使用for循环代替while循环。此外,在循环停止后,您将打印t
,因此您的t
将永远不会被打印
用这个代替:
t = np.arange(5730,5730*2,1)
for t in range(5730,5730*2,1):
if 0.5**(t/5700)>0.35:
t+=1
else:
print(t)
break