包括范围上限()

时间:2010-05-07 00:09:45

标签: python

如何在range()函数中包含上限?我不能加1,因为我的for循环看起来像:

for x in range(1,math.floor(math.sqrt(x))):
    y = math.sqrt(n - x * x)

但据我所知,实际上1 < x < M我需要1 < x <= M添加1将完全改变结果。 我试图将我的旧程序从C#重写为Python。这就是它在C#中的表现:

for (int x = 1; x <= Math.Floor(Math.Sqrt(n)); x++)
    double y = Math.Sqrt(n - x * x);

2 个答案:

答案 0 :(得分:5)

只需在范围函数的第二个参数中添加一个:

range(1,math.floor(math.sqrt(x))+1)

你也可以使用它:

range(math.floor(math.sqrt(x)))

然后在循环中添加一个。然而,前者会更快。

另外请注意,除非您使用的是Python 3,否则您应该使用xrange而不是range,以获得成语/效率。更惯用的是,您也可以拨打int而不是math.floor

答案 1 :(得分:4)

为什么不能简单地在range来电的上限添加一个?

此外,您似乎想在第一行中引用n,即:

for x in range(1,math.floor(math.sqrt(n)) + 1):

...假设您希望与C#片段具有相同的行为。