# 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
今日推荐
周排行