• 函数装饰器练习题


    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
  • 相关阅读:
    vs编译器好多下划波浪线但不报错
    scala学习——(1)scala基础(下)
    scala学习——(1)scala基础(上)
    未能正确加载包“Microsoft.Data.Entity.Design.Package.MicrosoftDataEntityDesignPackage(转)
    如何完全卸载VS2010(亲自体验过) (转)
    2_C语言中的数据类型 (十)数组
    C++ STL 学习笔记__(8)map和multimap容器
    opencv配置(转)
    2_C语言中的数据类型 (九)数组
    郑捷《机器学习算法原理与编程实践》学习笔记(第五章 梯度寻优)5.2 Logistic梯度下降法
  • 原文地址:https://www.cnblogs.com/valorchang/p/11282105.html
Copyright © 2020-2023  润新知