zoukankan      html  css  js  c++  java
  • 8.6 每日课后作业之递归调用番外篇(迭代器)

    # 今日作业:
    # 1.简述
    # 什么是迭代器
    # 1、 迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来 仅仅循环,不是迭代
    # 什么是可迭代对象
    # 在python中,但凡内置有__iter__方法的对象,都是可迭代的对象
    # 什么是面向过程编程
    # 核心是'过程'二字,过程即解决问题的步骤,即先干什么,再干什么。。。。
    # 基于面向过程编写程序就好比在设计一条流水线,是一种机械式的思维方式。

    # 2.自定义生成器 实现 range功能
    # def my_range(start,stop,step=1):
    # while start < stop:
    # yield start#yield 4
    # start+=step #
    # abc=my_range(1,5,1)
    # print(next(abc))
    # print(next(abc))
    # print(next(abc))
    # 3、文件shopping.txt内容如下
    # mac,2000,3
    # lenovo,3000,10
    # tesla,1000000,10
    # chicken,200,1
    #
    # with open(r'shopping.txt','w',encoding='utf-8') as f:
    # f.writelines(['mac,2000,3 ',
    # 'lenovo,3000,10 ',
    # 'tesla,1000000,10 ',
    # 'chicken,200,1 '])

    # # 求总共花了多少钱?
    # with open(r'shopping.txt','r',encoding='utf-8') as f:
    # info=[line.strip(' ').split(',') for line in f]
    # res=sum(int(i[1])*int(i[2]) for i in info)
    # print(res)
    # 打印出所有的商品信息,格式为
    # [{'name':'xxx','price':'3333','count':3},....]
    # l=[]
    # with open(r'shopping.txt','r',encoding='utf-8') as f:
    # for line in f:
    # dic={}
    # info=line.strip(' ').split(',')
    # dic['name'] = info[0]
    # dic['price'] = info[1]
    # dic['count'] = info[2]
    # l.append(dic)
    # print(l)
    # 求单价大于10000的商品信息,格式同上


    # with open(r'shopping.txt',encoding='utf-8') as f:
    # info=[{
    # 'name': line.strip(' ').split(',')[0],
    # 'price': float(line.strip(' ').split(',')[1]),
    # 'count': int(line.strip(' ').split(',')[2]) }
    # for line in f if float(line.strip(' ').split(',')[1] )> 10000]
    # print(info)
    # 4、文件内容如下,标题为:姓名,性别,年纪,薪资
    # egon male 18 3000
    # alex male 38 30000
    # wupeiqi female 28 20000
    # yuanhao female 28 10000
    #
    # with open(r'salary.txt','w',encoding='utf-8') as f:
    # f.writelines(['egon male 18 3000 ',
    # 'alex male 38 30000 ',
    # 'wupeiqi female 28 20000 ',
    # 'yuanhao female 28 10000 '])
    # # 要求:
    # # 从文件中取出每一条记录放入列表中,列表的每个元素都是{'name':'egon','sex':'male','age':18,'salary':3000}的形式
    l=[]
    with open(r'salary.txt','r',encoding='utf-8') as f:
    for line in f:
    dic={}
    info=line.split()
    dic['name'] = info[0]
    dic['sex'] = info[1]
    dic['age'] = info[2]
    dic['salary'] = info[3]
    l.append(dic)
    print(l)

    # # 5 根据1得到的列表,取出薪资最高的人的信息
    # print(max(l,key=lambda dic:dic['salary']))
    # # 6 根据1得到的列表,取出最年轻的人的信息
    # print(min(l,key=lambda dic:dic['age']))
    # # 7 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
    # l1=[]
    # with open(r'salary.txt','r',encoding='utf-8') as f:
    # for line in f:
    # dic1={}
    # info=line.strip(' ').split(' ')
    # dic1['name'] = info[0].capitalize()
    # dic1['sex'] = info[1]
    # dic1['age'] = info[2]
    # dic1['salary'] = info[3]
    # l1.append(dic1)
    # print(list(l1))
    # 8 根据1得到的列表,过滤掉名字以a开头的人的信息
    g=filter(lambda item:item['name'].startswith('a'),l)

    print(list(g))
    l.remove({'name': 'alex', 'sex': 'male', 'age': '38', 'salary': '30000'})
    # l.pop(1)
    print(l)
  • 相关阅读:
    IntegrityError duplicate key value violates unique constraint
    LeetCode 212: Word Search II
    LeetCode: Lowest Common Ancestor of a Binary Search Tree 解题报告
    LeetCode: Unique Paths II 解题报告
    LeetCode: Unique Paths 解题报告
    LeetCode: Remove Nth Node From End of List 解题报告
    LeetCode: Convert Sorted List to Binary Search Tree 解题报告
    LeetCode: Path Sum II 解题报告
    lintcode: k Sum 解题报告
    LeetCode: Unique Binary Search Trees II 解题报告
  • 原文地址:https://www.cnblogs.com/Maikes/p/9458885.html
Copyright © 2011-2022 走看看