读取文件内容根据页数输出内容

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

with open('file1',encoding='utf-8') as f:
    l = f.readlines()
page_num = int(input('请输入页码 : '))
page,mod = divmod(len(l),5) #求有多少页,有没有剩余的行数
if mod:           # 如果有剩余的行数,那么页数加一
    pages=page+1    # 一共有多少页 当余数mod不为0时,总共的页数为page加上1页也就是pages
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行        (1-1)*5=0    (1-1)*5+4=4
  #相当于输出列表的第0项至第四项:思考n怎么处理乘以5可以计算出来0和4
# 输入2 输出第6-10行       (2-1)*5+0=5    (2-1)*5+4=9
# 输入3 输出第11-15行      (3-1)*5+0=10   (3-1)*5+4=14
# 输入4 输出第16-20行      (4-1)*5+0=15   (4-1)*5+4=19

# 从上面可以看出每一个都是需要用页数减去1乘以5(是因为行数是连起来的所以需要乘以5)在加上一个变量i(
#     可以用range(5)获得,如果最后一页不是满页就需要把余数作为迭代range(mod)
# )



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


f=open('file1',encoding='utf-8')
l=f.readlines()
page_num=int(input('请输入页码:\n'))
page,mod=divmod(len(l),5)#得出页码和剩余行数
if mod:
    pages=page+1#如果mod不是0说明页数还需要增加1才是正确的页数
if page_num>pages or page_num<=0:
    print('输入页码错误')
elif page_num==pages and mod!=0:#如果输入的页数和实际的页数一致并且余数不是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())

猜你喜欢

转载自blog.csdn.net/qq_37493425/article/details/86690325