1

我想找出值 1 到 10 的差余弦函数值。所以:

import math
import sys
import string
import os

for n in range (1,11): 
        x = math.cos (n)
        print x

这个简单的脚本打印 n = 1 到 10 的余弦值现在我需要确定各个值之间的差异,并从 n = 2 的值和 n = 1 的值中获取它然后获取 n = 的值3 和 n =2 所以:

Math.cos (2) - Math.cos (1)

Math.cos (3) - Math.cos (2)

Math.cos (4) - Math.cos (3)

.

.

Math.cos (10) - Math.cos (9)

最后

Math.cos (10) - Math.cos (1)

然后我想把这些值加起来......但我可能已经把它们放在一起了

4

4 回答 4

1

未经测试:

import math

cosines = map(math.cos, xrange(1, 11))
cosines.append(cosines[0])

from operator import sub
print map(sub, cosines[1:], cosines[:-1])
于 2013-02-05T18:44:29.417 回答
1

我可能会做类似的事情:

for x,y in zip(range(2,11)+[10],range(1,10)+[1]):
    print math.cos(x) - math.cos(y)

当然,这只适用于range返回列表的python2.x。为了解决这个问题,您可以使用itertools.chain. 即: range(2,11)+[10]变成chain(range(2,11),[10]). 这里要学习的关键功能是zip

于 2013-02-05T18:41:02.320 回答
0
from math import cos

cosines = [cos(i) for i in range(1,11)]

print [b-a for a,b in zip(cosines, cosines[1:]+cosines[0])]
于 2013-02-05T18:59:38.337 回答
0

您可以一起使用多个for循环,如下所示:

for x in range(1, 11):
    for y in range(1, 11):
        print("x is %s, y is %s" % (x, y))
于 2013-02-05T18:41:04.520 回答