函数装饰器练习题

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

猜你喜欢

转载自www.cnblogs.com/valorchang/p/11282105.html