zoukankan      html  css  js  c++  java
  • day15 Python 分页算法

    """ --> 页码分页算法
    每页10个内容 page_num = 10
    第1页 第2页 第3页
    [0-10] [10-20] [20-30]
    
    每页5个 page_num = 5
    第1页 第2页 第3页
    [0-5] [5-10] [10-15]
    
    每页n个, page_num = n
    第x页
    [(n-1)*n : x*n]
    """
    
    
    class Page(object):
    
    def __init__(self, lst, page_num):
    self.lst = lst
    self.page_num = page_num # page_num 是每个显示的元素个数
    
    @property
    def total_page_num(self):
    """
    计算最大的页码
    :return: 最大页码
    """
    if len(self.lst) % self.page_num == 0:
    return len(self.lst) // self.page_num
    else:
    return len(self.lst) // self.page_num + 1
    
    def start(self):
    """
    :return: 返回起始页
    """
    return self.lst[0:self.page_num]
    
    def index(self, index):
    """
    :param index: 传递的页码
    :return: 返回对应页码的内容
    """
    if isinstance(index, int) and index > 0:
    return self.lst[(index - 1) * self.page_num: index * self.page_num]
    else:
    return []
    
    def end(self):
    """
    :return: 返回尾页
    """
    return self.lst[(self.total_page_num - 1) * self.page_num: self.total_page_num * self.page_num]
    
    
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
    
    page = Page(lst, 5)
    print("start -->", page.start())
    print("index -->", page.index(4))
    print("end -->", page.end())
    
     
    

      

  • 相关阅读:
    python值解析excel
    python 面向对象
    python之解析json
    python之数据驱动ddt
    Matlab笔记
    WPF应用Access数据库
    白平衡之灰度世界法与镜面法
    应用按位与操作,拆分字节
    WPF(C#)与MATLAB混合编程
    C++调用matlab函数
  • 原文地址:https://www.cnblogs.com/fanghongbo/p/9931470.html
Copyright © 2011-2022 走看看