• 第四章节练习


    3、json、pickle、shelve三个区别是什么?

    json:适用于各种语言

    pinkle:只使用与python

    shelve:?

    4、json的作用是什么?

    序列化和反序列化

    10、写一个6位随机验证码程序(使用random模块),要求验证码中至少包含一个数字、一个小写字母、一个大写字母

    # 写一个6位随机验证码程序(使用random模块),要求验证码中至少包含一个数字、一个小写字母、一个大写字母
    import random
    import string
    digit=string.digits+string.ascii_lowercase+string.ascii_uppercase
    digit1 = string.digits
    digit2 = string.ascii_lowercase
    digit3 = string.ascii_uppercase
    digit = list(digit)
    digit1_1 = list(digit1)
    digit2_2 = list(digit2)
    digit3_3 = list(digit3)
    random.shuffle(digit)
    random.shuffle(digit1_1)
    random.shuffle(digit2_2)
    random.shuffle(digit3_3)
    print("".join(random.sample(digit1_1,1)+random.sample(digit2_2,1)+random.sample(digit3_3,1)+random.sample(digit,3)))
    

    11、利用正则表达式提取到 luffycity.com ,内容如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>luffycity.com</title>
    </head>
    <body>
    </body>
    </html>
    
    s ='''
    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>luffycity.com</title>
    </head>
    <body>
    </body>
    </html>
    '''
    import  re
    match_s = re.findall('<title>(.*?)</title>',s)
    print(match_s[0])
    

     

    1.导入模块的方式有哪几种,官方不推荐哪种?

    import 模块

    from 模块.xxx.xxx import xx as rename     

    from   模块.xx.xx  import  *   导入一个模块下的所有方法,不建议时用

    2.如何让你写的模块可以被系统上任何一个py文件导入

    >>> import sys
    >>> print(sys.path)
    ['', 'D:\py\python37\python37.zip', 'D:\py\python37\DLLs', 'D:\py\python37\lib', 'D:\py\python37', 'D:\py\python37\lib\site-packages']
    

    把模块放到这个路径下,就可以实现被任意调用:

    'D:\py\python37\lib\site-packages'

    3.写一个用户登录验证程序,文件名account.json,内容如下

    {“expire_date”: “2021-01-01”, “id”: 1234, “status”: 0, “pay_day”: 22, “password”: “abc”}
    

    ⑴ 根据用户输入的用户名&密码,找到对应的json文件,把数据加载出来进行验证

    ⑵ 用户名为json文件名,密码为 password。

    ⑶判断是否过期,与expire_date进行对比

    ⑷ 登陆成功后,打印“登陆成功”,三次登陆失败,status值改为1,并且锁定账号。

    import  json
    import os
    import time
    count = 0
    #while count <3:
    user_name = input("请输入用户名:")
    f = user_name.strip()+'.json'
    if os.path.exists(f):
    fp = open(f,"r",encoding='utf-8')
    j_user =json.load(fp)
    print(j_user)
    if j_user["status"] == 1:
    print("账户被锁定")
    else:
    date = j_user["expire_date"]
    current_time = time.strftime('%Y-%m-%d',time.gmtime(time.time()))
    print(current_time)
    if current_time > date:
    print("已过期")
    else:
    while count < 3:
    pwd = input("请输入密码:")
    if pwd.strip()==j_user["password"]:
    print("登录成功")
    break
    else:
    print("登录失败")
    if count == 2:
    print("用户登录超过3次,锁定")
    j_user["status"] =1
    count +=1

      

    4.把第3题用户密码进行hashlib加密处理。即:json文件里的密码保存为md5的值,然后用md5的值进行验证账号信息是否正确

    5.最近alex买了个Tesla Model S,通过转账的形式,并且支付了5%的手续费,tesla价格为95万。账户文件为json,请用程序实现该转账行为。

    需求如下:

    • 目录结构为

     当执行start.py时,出现交互窗口

       ———- ICBC Bank ————-
      1.  账户信息
      2.  转账
    

    选择1 账户信息 显示alex的当前账户余额

    选择2 转账 直接扣掉95万和利息费用并且tesla_company账户增加95万

      1.对上题增加一个需求:提现。

        目录结构如下

        

         当执行start.py时,出现交互窗口

        

    选择1 账户信息 显示alex的当前账户余额和信用额度。

    选择2 提现 提现金额应小于等于信用额度,利息为5%,提现金额为用户自定义。

    体现代码的实现要写在withdraw.py里

    6.尝试把上一章的验证用户登陆的装饰器添加到提现和转账的功能上。

    7.对第6题的用户转账、登录、提现操作均记录日志,日志文件位置如下

     日志格式如下

    20190502 18:34:23  alex   transfer      transfered to  [tesla_company]  with amount RMB950000, intrest is RMB47500.
    20190812 14:21:15  alex   withdraw      withdraw cash RMB800, intrest is RMB40.
    20190815 22:27:19  alex   consume      consumed cash RMB600 in shop [神仙岛洗浴中心], intrest is RMB0.
    

    作业

    题目:网站访问日志分析

    需求

    1. 统计本日志文件的总pv、uv

    2. 列出全天每小时的pv、uv数

    3. 列出top 10 uv的IP地址,以及每个ip的pv点击数

    4. 列出top 10 访问量最多的页面及每个页面的访问量

    5. 列出访问来源的设备列表及每个设备的访问量

    日志格式解释

    名词解释:

    pv:page visit , 页面访问量,一次请求就是一次pv

    uv: user visit, 独立用户,一个ip就算一个独立用户

    http://hcdn1.luffycity.com/data/course_related/72/courseware/%E8%AF%BE%E4%BB%B6.zip

  • 相关阅读:
    shell script 学习笔记-----标准输出
    《TCP/IP详解 卷一》读书笔记-----TCP persist &Keeplive timer
    《TCP/IP详解 卷一》读书笔记-----TCP超时重传
    《TCP/IP详解 卷一》读书笔记-----TCP数据流
    《TCP/IP详解 卷一》读书笔记-----TCP连接建立
    《TCP/IP详解 卷一》读书笔记-----DNS
    《TCP/IP详解 卷一》读书笔记-----广播&多播&IGMP
    《TCP/IP详解 卷一》读书笔记-----UDP&IP 分片
    《TCP/IP详解 卷一》读书笔记-----动态路由协议
    《TCP/IP 详解 卷一》读书笔记-----IP静态 路由
  • 原文地址:https://www.cnblogs.com/hantongxue/p/11487110.html
Copyright © 2020-2023  润新知