2010-05-07 5 views
2

range() 함수에 상한을 포함하려면 어떻게해야합니까? 제에 대한 루프의 모습 때문에 1 추가 할 수 없습니다 :range()에 상한 포함

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

하지만 이해 실제로 내가 1 < x <= M 완전히 결과를 변경합니다 (1)를 추가해야합니다 1 < x < M 될 것입니다. 이전 프로그램을 C#에서 Python으로 다시 작성하려고합니다.

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

:

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

당신은이를 사용할 수 있습니다

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

아니요. 'range'는'1 <= x dan04

답변

5

가 그냥 범위 함수의 두 번째 인수에 하나를 추가 : 즉, C#으로 모습입니다 루프 안에 하나를 추가하십시오. 전자는 더 빠를 것이다.

추가 참고로, Python 3을 사용하지 않는 한, 관용구/효율성을 위해 범위 대신 xrange를 사용해야합니다. 더 관용적으로 math.floor 대신 int으로 전화 할 수도 있습니다.

4

range 전화의 상한에 정확히 하나만 추가하면 안되는 이유는 무엇입니까? 당신 : 당신의 첫 번째 줄에 n을 참조

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

을 즉 원하는처럼

또한, 당신이 당신의 C# 조각 같은 동작을 원하는 가정 ... 것 같다.

+0

OP의 x-of-n 실수를 알리는 +1 –

관련 문제