翼度科技»论坛 编程开发 python 查看内容

Python函数练习题

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
第一题

现有文件info.txt, 其内容如下:
  1. alpha male 18 1000
  2. bravo male 28 2000
  3. charlie female 38 3000
  4. delta female 48 4000
复制代码
从文件中取出每一条记录放入列表中,列表的每个元素都是{'name':'alpha','gender':'male','age':18,'salary':1000}的形式

  • 根据1得到的列表,取出薪资最高的人的信息
  • 根据1得到的列表,取出最年轻的人的信息
  • 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
  • 根据1得到的列表,过滤掉名字以a开头的人的信息
  1. # 1
  2. info_list = []
  3. with open('info.txt', 'rt', encoding='utf-8') as f:
  4.         for line in f:
  5.         info_split_list = (line.strip().split(' '))
  6.         name, gender, age, salary = info_split_list
  7.         info_dict = {'name': name, 'gender': gender, 'age': age, 'salary': salary}
  8.         info_list.append(info_dict)
  9.    
  10.    
  11. print(info_list)
  12. # 2
  13. max_salary_info = max(info_list, key=lambda dic: dic['salary'])
  14. print(max_salary_info)
  15. # 3
  16. min_age_info = min(info_list, key=lambda dic: dic['age'])
  17. print(min_age_info)
  18. # 4
  19. new_info_list = map(lambda dic: {'name': dic['name'].capitalize(),
  20.                                  'gender': dic['gender'],
  21.                                  'age': dic['age'],
  22.                                  'salary': dic['salary']}, info_list)
  23. print(list(new_info_list))
  24. # 5
  25. res = filter(lambda dic: dic['name'][0] != 'a', info_list)
  26. print(list(res))
复制代码
第二题

使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
  1. num1 = 0
  2. num2 = 1
  3. num = 0
  4. #Python学习交流群:153708845
  5. def fibo(end):
  6.     '''斐波那契数列'''
  7.     global num1, num2, num
  8.     print(num)
  9.     num1 = num2
  10.     num2 = num
  11.     num = num1 + num2
  12.     if num > end:
  13.         return
  14.     func(end)
  15. func(20)
复制代码
第三题

一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值
  1. def get(lis):
  2.     for i in lis:
  3.         if type(i) == list:
  4.             get(i)
  5.         else:
  6.             print(i)
  7. get(l)
复制代码
来源:https://www.cnblogs.com/djdjdj123/p/18271374
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具