2015-01-05 4 views
1

데이터베이스의 69 행마다 계산하여 값 목록을 얻으려고 파이썬 스크립트에서 작업하고 있습니다. 그들 중 일부는 잘못 되었기 때문에 코드에 도움이 필요합니다.데이터베이스에서 데이터 행 찾기

나는이 때 :이 같은 결과를 얻을 것이다

test = con.cursor() 
test.execute("SELECT COUNT(*) FROM programs") 
x = test.fetchone()[0] 
running_total = 1 #Again, you want to start counting at 1 for some reason 
while running_total < x: 
    running_total += 69 
    print running_total 

: I 출력하고자

1 
70 
139 
208 
277 
346 
415 
484 
553 
622 
691 
760 
829 
898 
967 
1036 

을 : 여기

70 
139 
208 
277 
346 
415 
484 
553 
622 
691 
760 
829 
898 
967 
1036 
1105 

내가 달성하고자하는 것입니다 1으로 시작하고 그 다음에 70, 139,로 시작하는 값... 데이터베이스에서 마지막 69 개의 ​​값을 얻을 때까지 등. 예 : 데이터베이스에 1104 개의 행이 있는데 마지막으로 얻으려는 행 69 개는 1036이고 마지막 행인 1104은 무시합니다.

또 다른 예 : 나는 총 1173에서 전체 행을 얻기 위해 행 1104이 데이터베이스에있는 데이터의 또 다른 69 개 행을 추가하면, 내가 싶어 마지막 69 행 1104과 마지막 행 1173을 무시합니다. 데이터베이스에 추가하는 데이터 행의 수에 따라 다릅니다.

당신은 내가 출력 1로 시작하는 값은, 다음 69에게 나는 마지막 69 개 행을 얻을 때까지 70, 139, 208 ... 등을 할 때마다 추가 할 수 있습니다 다음 마지막을 무시하는 방법을 좀 도와 주실 래요 열?

답변

0

당신은 범위/xrange 기능을 활용해야합니다

range (Python3)와 xrange (Python2) 다음과 같은 형식이 있습니다 start가 포함입니다 range(start, end, increment)end 비 포함입니다.

test = con.cursor() 
test.execute("SELECT COUNT(*) FROM programs") 
x = test.fetchone()[0] 
for running_total in xrange(1, x + 1, 69): 
    print(running_total) 

이렇게하면 C 스타일이 증가하지 않고 원하는 결과를 얻을 수 있습니다.

+0

도움 주셔서 대단히 감사합니다. 문제가 해결되었습니다. –

관련 문제