随意写一个20行以上的文件 运行程序,先将内容读到内存中,用列表存储。 接收用户输入页码,每页5条,仅输入当页的内容

题目:随意写一个20行以上的文件
运行程序,先将内容读到内存中,用列表存储。
接收用户输入页码,每页5条,仅输入当页的内容

with open('file',encoding='utf-8')
  l = f.readlines()
page_num = int(input('请输入页码: '))

pages,mod = divmod(len(l),5) #求有多少页,有没有剩余的行数,比如21行数据除以5 等于4余1
#pages = 4, mod = 1


if mod: #如果有剩余的行数,那么页数加一
  pages += 1 #一共有多少页
if page_num > pages or page_num <=0: #用户输入的页数大于总数或者小于等于0
  print('输入有误')
elif page_num == pages and mod !=0: #如果用户输入的页码是最后一页,且之前有过剩余行数
  for i in range(mod):
    print(l[(page_num-1)*5+i].strip()) #只输出这一页上剩余的行
else:
  for i in range(5):
    print(l[(page_num-1)*5+i].strip()) #否则就输出5行

思路:
1页 1-5
2页 6-10
3页 11-15
4页 16-20
5页 21-22
20/5
如果21条怎么办
一共有多少行数据len(l),除以每页显示5条:len(l) /5,使用divmod商余函数

posted @ 2019-06-11 11:33  kate8Y  阅读(128)  评论(0)    收藏  举报