一、
1、随意写一个20行以上的文件
2、运行程序,现将内容读取到内存到内存中,用列表存储
3、接受用户输入页码,每页5条,仅输出当页内容
with open("file",encoding="utf-8") as f: #打开一个文件 w = f.readlines() #按行读取文件 page_num = int(input("请输入页码:")) pages,mod = divmod(len(w),5) #求有多少页,有没有多余的行数 pages 为页数,mod为剩余行数,余数就是剩余的行数 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(w[(page_num-1)*5 +i].strip()) #就只输出这一页上剩余的行数 else: for i in range(5): print(w[(page_num -1)*5+i ].strip()) #否则输出5行
二、
如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
portfolio = [ {'name':'IBM','shares':100,'price':91.1}, {'name':'AAPL','shares':50,'price':534.22}, {'name':'FB','shares':200,'price':21.09}, {'name':'HPQ','shares':35,'price':31.75}, {'name':'YHOO','shares':45,'price':16.35}, {'name':'ACME','shares':75,'price':115.65} ]
计算购买每支股票的价格
print(list(map(lambda dic:{dic['name']:round(dic['shares']*dic['price'],2)},portfolio))) #round:保留几位小数
用filter过滤出单价大于100的股票有哪些
print(list(filter(lambda dic: True if dic['price'] > 100 else False,portfolio)))
或 print(list(filter(lambda dic:dic["price"]>100,portfolio)))