我对 python 比较陌生,但我在以前制作的程序中使用过循环,但它们相对简单。 我想知道是否有一种方法涉及循环或其他方式来使此迭代更加简洁。
基本上有没有一种方法可以让我拥有一个名为“t”的变量,它像列表一样保存 t1、t2 和 t3 的值,然后在“eq”和“der”中使用该变量,而不是复制和粘贴相同的值一段代码?
我已经尝试在这里和其他地方寻找答案,但到目前为止我找到的解决方案似乎不适用于我所拥有的/我对Python的了解不够,无法理解它们。
import numpy as np
U235_Decay_Constant = 9.72e-10
U238_Decay_Constant = 1.54e-10
t0 = 4.1e9
eq = ((np.exp(U238_Decay_Constant*t0)-1)-(0.0167*
((np.exp(U235_Decay_Constant*t0)-1)))-0.0094)
der = (U238_Decay_Constant*(np.exp(U238_Decay_Constant*t0)))-(0.0167*
(U235_Decay_Constant*(np.exp(U235_Decay_Constant*t0))))
t1 = t0 - (eq/der)
eq = ((np.exp(U238_Decay_Constant*t1)-1)-(0.0167*
((np.exp(U235_Decay_Constant*t1)-1)))-0.0094)
der = (U238_Decay_Constant*(np.exp(U238_Decay_Constant*t1)))-(0.0167*
(U235_Decay_Constant*(np.exp(U235_Decay_Constant*t1))))
t2 = t1 - (eq/der)
eq = ((np.exp(U238_Decay_Constant*t2)-1)-(0.0167*
((np.exp(U235_Decay_Constant*t2)-1)))-0.0094)
der = (U238_Decay_Constant*(np.exp(U238_Decay_Constant*t2)))-(0.0167*
(U235_Decay_Constant*(np.exp(U235_Decay_Constant*t2))))
t3 = t2 - (eq/der)
print(t3)
最佳答案
可能更容易阅读:
import numpy as np
U235_Decay_Constant = 9.72e-10
U238_Decay_Constant = 1.54e-10
t = [4.1e9, None, None, None]
t[0] = 4.1e9
for i in range(3):
eq = ((np.exp(U238_Decay_Constant*t[i])-1)-(0.0167*
((np.exp(U235_Decay_Constant*t[i])-1)))-0.0094)
der = (U238_Decay_Constant*(np.exp(U238_Decay_Constant*t[0])))-(0.0167*
(U235_Decay_Constant*(np.exp(U235_Decay_Constant*t[0]))))
t[i+1] = t[i] - (eq/der)
print(t[3])
关于python - 我可以通过使用循环使迭代变得更容易吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53362189/