双星号

4

我刚接触Python,对这个问题感到困惑。我正在阅读一本书,代码能够正常运行,但我却不理解它的含义。

T[i+1] = m*v[i+1]ˆ**/L

这段代码中为什么有双星号?后面还跟着一个斜杠。变量L的初始值为1.0。然而,看起来像是有人在键盘上打瞌睡了,但这段代码可以正常运行。这是一个数学表达式还是什么其他的东西呢?我希望能够理解这一点,谢谢!
from pylab import *
g = 9.8 # m/sˆ2
dt = 0.01 # s
time = 10.0 # s
v0 = 2.0 # s
D = 0.05 #
L = 1.0 # m
m = 0.5 # kg
# Numerical initialization
n = int(round(time/dt))
t = zeros(n,float)
s = zeros(n,float)
v = zeros(n,float)
T = zeros(n,float)
# Initial conditions
v[0] = v0
s[0] = 0.0
# Simulation loop
i = 0
while (i<n AND T[i]>=0.0):
    t[i+1] = t[i] + dt
    a = -D/m*v[i]*abs(v[i])-g*sin(s[i]/L)
    v[i+1] = v[i] + a*dt
    s[i+1] = s[i] + v[i+1]*dt
    T[i+1] = m*v[i+1]ˆ**/L + m*g*cos(s[i+1]/L)
    i = i + 1

4
** 在我所见过的任何地方,要么表示乘方,要么表示关键字参数扩展。vL 分别指什么,是哪本书? - Ryan Haining
7
该语法无效。 - fferri
6
那不是插入符号(caret),它是Unicode字符\u02c6(修饰符号弯折音符号)。 - John Kugelman
2
你确定它在Python中编译通过吗?i<n AND T[i]>=0.0中的AND是什么意思? - nymk
3
这明显不像是标准的Python代码。你在用什么书?能提供一下你的IDE和/或命令行的截图吗? - Kevin
显示剩余8条评论
2个回答

11
这段代码来自于书籍《使用Python的初级力学:结合分析和数值技术的现代课程》。根据第255页上的公式: enter image description here 因此,Python代码应该是:
T[i+1] = m*v[i+1]**2/L + m*g*cos(s[i+1]/L)

1
我弄错了,感谢您的纠正并注意到数学公式。在我的设置中,它似乎已经在Visual Studio中使用IronPython 2.7成功运行。这按预期工作,谢谢Delimitry。 - DaiWei
4
那么你需要停止使用IronPython 2.7和/或Visual Studio。它可以接受无意义的语法! - ron rothman

8

这段代码中的双星号部分是什么意思?

至少在本文写作时,核心问题的答案是双星号(星号)表示乘方 -- "求幂"。因此,i**3 就是"i的三次方"。

我的(交叉检查)来源:https://dev59.com/6HNA5IYBdhLWcg3wPLH-#1044866


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接