我是tcl新手,不知道如何将这段代码从python翻译成tcl
import numpy as np
g0 = 7.88e12
Eox = np.array([155473, 15573, 1553, 1557473, 5473, 473, 1573, 19553])
E1 = 0.55e6
m = 0.7
fot= 1
D = float(input("rad dose"))
Fy = np.array([(abs(Eox)/(abs(Eox)+E1))**m])
Not = np.array([g0*D*Fy*fot])
Not[Not>6.8e18] = 6.8e18
Nit = (1.7e4*D)+1e10
if Nit > 5e12:
Nit = 5e12
print(Not)
print(Nit)
Tcl不处理像numpy那样的值列表(它更接近标准Python),而没有扩展。我记得有这样一个东西,但我没有用过,现在也记不起它的名字了。所以我将使用标准的Tcl。在标准Tcl中,与numpy数组最接近的类比是值列表(尽管这与Python列表或元组有更多的共同点)
我将为您翻译这四行:
它们成为:
使用
lmap
与numpy在幕后为您在这些阵列上所做的相同。最后两个命令可以组合使用:(此外,为了提高清晰度,我将每个
lmap/expr
命令拆分为多行。您可以编写更紧凑的代码,但它更难阅读。对于任何打算保留5分钟以上的代码,清除代码都是一个非常好的计划。)其他代码行都是纯基本的东西
set
、puts
、gets
和expr
将满足您的需要。以及令人怀疑的显而易见的if
相关问题 更多 >
编程相关推荐