dimanche 24 janvier 2016

Iterate over double values to produce page numbers

I have 35 items separated in 3 pages. Page 1 and page 2 have 15 items and page 3 have a 5. Now I'm already create loop to tell the script where to go. Here is the script.

for i in range(1,36):
    if i <= 15:
        page = 1
        item = i
    if i > 15 <= 30:
        page = 2
        item = i - 15
    if i > 30 <= 35:
        page = 3
        item = i - 30

    print 'GOTO page %s take item %s' % (page, item)

But in the future there can be 1000 pages with 25 items on the page. So I'm changing the script as follows. But now I need to add more if statements like if i > items_per_page * 22 <= items_per_page * 23: What is a better and more Pythonic way to get the same?

max_items = 35
items_per_page = 15

for i in range(1, max_items + 1):
    if i <= items_per_page:
        page = 1
        item = i
    if i > items_per_page <= items_per_page * 2:
        page = 2
        item = i - items_per_page
    if i > items_per_page * 2 <= items_per_page * 3:
        page = 3
        item = i - items_per_page * 2

    print 'GOTO page %s take item %s' % (page, item)

Aucun commentaire:

Enregistrer un commentaire