你的麻烦似乎是翻译:
print values from -startAngle to startAngle (startAngle included)
进入 Python。range
可以轻松处理:
print(list(range(-startAngle, startAngle+1)))
除了您似乎只想要十个值 - 这给出了2*startAngle+1
值(range(-a, a)
有 2a 值,并且还有一个)并且放入您的示例代码将打印出所有这些十次。
正确选择的step
参数 torange
可以保证它会给出numvalues
元素 - 您希望将步长作为 un- step
ed 范围内的值数除以您想要的值数,四舍五入因为需要range
整数:
print(list(range(-startAngle, startAngle+1, math.ceil((2*startangle+1)/numvalues))
所以, numvalues=10 和 startAngle=45 给你:
list(range(-45, 46, math.ceil((2*45+1)/10)))
[-45, -35, -25, -15, -5, 5, 15, 25, 35, 45]
请注意,我假设您使用的是 Python 3。在 Python 2 中,您可以执行以下操作:
from __future__ import division
或设置numvalues
为10.
、dorange(...)
而不是list(range(...))
和 doint(ceil(...))
而不是达到ceil(...)
相同的效果。
如果您需要处理浮点数,另一种方法也可以正常工作,它是使用numpy.linspace - 它需要一个num
参数而不是 a step
,并且默认情况下包括它的端点 - 所以,
numpy.linspace(-startAngle, startAngle, num=10)
会直接给你你想要的。