2010-03-23 4 views
2

c'est probablement trop simple d'une question, mais ici je vais.Simple forloop - Python

J'ai des articles paginés, chaque page contient 100 articles. Le programme va chercher des éléments jusqu'à ce qu'il atteigne l'indice d'élément spécifié dans les Item_Num

C'est ce que j'ai:

item_num = 56 

range(0, item_num/100 + (item_num%100 > 0)): 
    get_next_100() 

Je ne suis pas vraiment sûr de la (Item_Num% 100> 0) booléen J'ai utilisé.

Y at-il quelque chose qui ne va pas avec ce que j'ai fait?

Répondre

4

plage prend un 3ème paramètre optionnel de l'étape.

Alors

range(0,234,100) 

Donne

[0, 100, 200] 

Alors vous pouvez faire quelque chose comme

for items in range(0,234,100): 
    get_next_100() 
+0

@ cb160: en fait ... c'est en effet la réponse parfaite! – RadiantHex

+1

comme je l'ai commenté sur la réponse de Mark Byers, vous pourriez également considérer 'xrange' si vous utilisez la version python <3.0 – tgray

6

Vous semblez essayer d'appeler zéro fois la fonction si Item_Num est 0, une fois si Item_Num est de 1 à 100, deux fois si Item_Num est entre 101 et 200, etc ...

Une façon plus simple d'écrire c'est:

n = 0 
while n < item_num: 
    get_next_100() 
    n += 100 

Ou vous pouvez le faire en boucle:

for _ in range(0, item_num, 100): 
    get_next_100() 
+1

vous pouvez également envisager 'xrange' si vous utilisez la version python <3.0 – tgray

+0

@ Mark : Hé Mark. Merci pour votre réponse! J'utilise btw numérotation basée sur 1. – RadiantHex

+1

@Radiant: Ah oui, il semblait que vous essayiez de faire quelque chose de plus compliqué. –

Questions connexes