函数装饰器练习题
Posted 不夜男人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数装饰器练习题相关的知识,希望对你有一定的参考价值。
1
2
3
4
5
6
7
|
1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数。 apple 10 3 tesla 100000 1 mac 3000 2 lenovo 30000 3 chicken 10 3 通过代码,将其构建成这种数据类型:[{ ‘name‘ : ‘apple‘ , ‘price‘ : 10 , ‘amount‘ : 3 },{ ‘name‘ : ‘tesla‘ , ‘price‘ : 1000000 , ‘amount‘ : 1 }......] 并计算出总价钱。 |
View Code
1
2
3
4
5
6
7
|
2. 有如下文件:<br> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - alex是老男孩python发起人,创建人。 alex其实是人妖。 谁说alex是sb? 你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 将文件中所有的alex都替换成大写的SB。 |
View Code
1
2
3
4
5
6
7
8
9
|
3. 文件a1.txt内容:每一行内容分别为商品名字,价钱,个数。 文件内容: name:apple price: 10 amount: 3 year: 2012 name:tesla price: 100000 amount: 1 year: 2013 通过代码,将其构建成这种数据类型: [{ ‘name‘ : ‘apple‘ , ‘price‘ : 10 , ‘amount‘ : 3 }, { ‘name‘ : ‘tesla‘ , ‘price‘ : 1000000 , ‘amount‘ : 1 }......] 并计算出总价钱。 |
View Code
1
2
3
4
5
6
7
8
|
4. 文件内容: 序号 部门 人数 平均年龄 备注 1 python 30 26 单身狗 2 Linux 26 30 没对象 3 运营部 20 24 女生多 通过代码,将其构建成这种数据类型: [{ ‘序号‘ : ‘1‘ , ‘部门‘ :Python, ‘人数‘ : 30 , ‘平均年龄‘ : 26 , ‘备注‘ : ‘单身狗‘ }, ......] |
View Code
1
|
5. 写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。 |
View Code
1
|
6. 写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于 5 。 |
View Code
1
|
7. 写函数,检查传入列表的长度,如果大于 2 ,那么仅保留前两个长度的内容,并将新内容返回给调用者。 |
View Code
1
|
8. 写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。 |
View Code
1
|
9. 写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。 |
View Code
1
2
3
|
10. 写函数,检查传入字典的每一个value的长度,如果大于 2 ,那么仅保留前两个长度的内容,并将新内容返回给调用者。 dic = { "k1" : "v1v1" , "k2" : [ 11 , 22 , 33 , 44 ]} PS:字典中的value只能是字符串或列表 |
View Code
1
|
11. 写函数,接收两个数字参数,返回比较大的那个数字。 |
View Code
1
|
12. 写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作. |
View Code
1
|
13. 写一个函数完成三次登陆功能,再写一个函数完成注册功能 |
View Code
1
2
3
4
5
6
7
8
9
10
11
12
|
14. 模拟公司hr录入员工账号密码的程序。 1 ),员工的账号密码存储在这种数据类型中: user_list = [ { ‘username‘ : ‘barry‘ , ‘password‘ : ‘1234‘ }, { ‘username‘ : ‘alex‘ , ‘password‘ : ‘asdf‘ }, ......... ] 2 )非法字符模板:board = [ ‘张三‘ , ‘李小四‘ , ‘王二麻子‘ ] 3 )Hr输入用户名,密码(可持续输入,如果想终止程序,那就在输入用户名时输入Q或者q退出程序), 在Hr输入用户名时,检测此用户名是否有board里面的非法字符,如果有非法字符, 则将非法字符替换成同数量的 * (如王二麻子替换成 * * * * ),然后添加到user_list中, 如果没有非法字符,则直接添加到user_list中,每次添加成功后,打印出刚添加的用户名,密码。 |
View Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
15. 按要求完成下列转化(不要按照索引去做)。 list3 = [ { "name" : "alex" , "hobby" : "抽烟" }, { "name" : "alex" , "hobby" : "喝酒" }, { "name" : "alex" , "hobby" : "烫头" }, { "name" : "alex" , "hobby" : "Massage" }, { "name" : "wusir" , "hobby" : "喊麦" }, { "name" : "wusir" , "hobby" : "街舞" }, ] 如何把上面的列表转换成下方的列表? list4 = [ { "name" : "alex" , "hobby_list" : [ "抽烟" , "喝酒" , "烫头" , "Massage" ]}, { "name" : "wusir" , "hobby_list" : [ "喊麦" , "街舞" ]}, ] |
View Code
1
2
3
4
|
16. 实现一个整数加法计算器: 如:content = input (‘请输入内容:’) # 如用户输入:5+8+7....(最少输入两个数相加), 然后进行分割再进行计算,将最后的计算结果添加到此字典中(替换 None ): dic = {‘最终计算结果’: None }。 |
View Code
1
|
17. 查找列表li中的元素,移除每个元素的空格,并找出以’A’或者’a’开头,并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表 |
View Code
1
2
|
18. 补充代码(从已有的代码下面继续写): 有如下值li = [ 11 , 22 , 33 , 44 , 55 , 77 , 88 , 99 , 90 ],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 |
View Code
1
|
19. 计算用户输入内容中索引为奇数并且对应的元素为数字的个数(没有则个数为零) |
View Code
1
|
20. 分别使用 while 循环,和 for 循环打印 1 - 2 + 3 - 4 + 5. ...... + 99 的结果 |
View Code
1
|
21. 有列表li = [‘alex’,’wusir’,’rain’],通过操作该列表构造一个字符串s = ’alexwusirrain |
View Code
1
2
|
22. 写函数,返回一个扑克牌列表,里面有 52 项,每一项是一个元组 例如:[(‘红心’, 2 ), (‘草花’, 2 ), …(‘黑桃,‘A’)] |
View Code
1
2
|
23. 写函数,传入n个数,返回字典{‘ max ’:最大值,’ min ’:最小值} 例如:min_max( 2 , 5 , 7 , 8 , 4 ) 返回:{‘ max ’: 8 ,’ min ’: 2 } |
View Code
1
2
3
4
5
|
24. 写函数,专门计算图形的面积 其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积 调用函数area(‘圆形’,圆半径) 返回圆的面积 调用函数area(‘正方形’,边长) 返回正方形的面积 调用函数area(‘长方形’,长,宽) 返回长方形的面积 |
View Code
1
|
25. 写函数,传入一个参数n,返回n的阶乘。例如: cal( 7 ) 计算 7 * 6 * 5 * 4 * 3 * 2 * 1 |
View Code
1
|
26. 编写下载网页内容的函数,要求功能是:用户传入一个url,函数返回下载页面的结果 |
View Code
1
2
|
27. 实现下载的页面存放于文件中,如果文件内有值(文件大小不为 0 ),就优先从文件中读取网页内容,否则,就去下载,然后存到文件中 扩展功能:用户可以选择缓存介质 / 缓存引擎,针对不同的url,缓存到不同的文件中 |
View Code
1
2
3
4
5
6
|
28. 给每个函数写一个记录日志的功能, 功能要求:每一次调用函数之前,要将函数名称,时间节点记录到log的日志中。 所需模块: import time struct_time = time.localtime() print (time.strftime( "%Y-%m-%d %H:%M:%S" ,struct_time)) |
View Code
1
|
29. 编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码 |
View Code
1
2
3
4
5
6
|
30. 在编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码。这个作业之上进行升级操作: 设置两套密码,一套为京东账号密码,一套为淘宝账号密码保存在文件中。 设置四个函数,分别代表 京东首页,京东超市,淘宝首页,淘宝超市。 循环打印四个选项:东首页,京东超市,淘宝首页,淘宝超市。 供用户选择,用户输入选项后,执行该函数,四个函数都加上认证功能,只要登陆成功一次,在选择其他函数,后续都无需输入用户名和密码。 相关提示:用带参数的装饰器。装饰器内部加入判断,验证不同的账户密码。 |
View Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
31. 写程序完成下列功能: 1 ),启动程序,首页面应该显示成如下格式: 欢迎来到博客园首页 1 :请登录 2 :请注册 3 :文章页面 4 :日记页面 5 :评论页面 6 :收藏页面 7 :注销 8 :退出程序 2 ),用户输入选项, 3 ~ 6 选项必须在用户登录成功之后,才能访问成功。 3 ),用户选择登录,用户名密码从register文件中读取验证,三次机会,没成功则结束整个程 序运行,成功之后,可以选择访问 3 ~ 6 项,访问页面之前, 必须要在log文件中打印日志, 日志格式为 - - >用户:xx 在xx年xx月xx日 执行了 % s函数,访问页面时,页面内容为:欢 迎xx用户访问评论(文章,日记,收藏)页面 4 ),如果用户没有注册,则可以选择注册,注册成功之后,可以自动完成登录,然后进入首页选择。 5 ),注销用户是指注销用户的登录状态,使其在访问任何页面时,必须重新登录。 6 ),退出程序为结束整个程序运行。 |
View Code
以上是关于函数装饰器练习题的主要内容,如果未能解决你的问题,请参考以下文章