如何使用以前生成的元组生成新元组

时间:2014-02-20 21:50:09

标签: python list tuples physics

我想知道是否有人可以帮我弄清楚如何使用以前生成的元组生成新元组。到目前为止,我只是生成一个空元组

import math as m
grav = 9.807 #[m/s**2] gravity http://physics.nist.gov/cgi-bin/cuu/Value?gn value obtained from NIST
H = 1.100 #[m] Height of the posts/supports
rho = 2.000 #[kg/m] density of the chain
DIS = 0.980 # distance of supports from x = 0
SEG = 10000. #number of divisions
SEGL = 2*DIS/SEG # size of segments
aa = 0.6 #[m]

#xtuple
n=0
xterms = []
xterm = -DIS
while n<=SEG:
    xterms.append(xterm)
    n+=1
    xterm = -DIS + n*SEGL
#ytuple
yterms = []
yterm = H
while n<= SEG:
    yterms.append(yterm)
    n+=1
    yterm = H + aa*m.cosh(xterms[n]/aa) -aa*m.cosh(DIS/aa)
print yterms

我最终要做的是用sqrt((xi - x(i-1))^2 + (yi - y(i-1))^2)求解长度。然后角度,净力和aa必须在.6到3.9之间变化。

我不能使用花哨的功能,因为这是一个介绍课程。我必须使用(xterms[n] -xterms[n-1])**2

之类的东西

3 个答案:

答案 0 :(得分:1)

您的yterms为空,因为n仍然是第一个循环的10001。

答案 1 :(得分:0)

第二个while循环未执行,因为n已经大于SEG。

答案 2 :(得分:0)

感谢您的帮助,但我设法找出了我的愚蠢错误。这是正确的方法。我手工编写了这个过程,这使我能够找到这个解决方案。

k=0
yterms = []
while k<=SEG:
    yterm = H + aa*m.cosh(xterms[k]/aa) -aa*m.cosh(DIS/aa)
    yterms.append(yterm)
    k+=1
print yterms

抱歉浪费你的时间