练习题

一、

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)))
原文地址:https://www.cnblogs.com/wanglan/p/9555238.html