• 第四章节练习


    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

  • 相关阅读:
    ZOJ Problem Set–2417 Lowest Bit
    ZOJ Problem Set–1402 Magnificent Meatballs
    ZOJ Problem Set–1292 Integer Inquiry
    ZOJ Problem Set–1109 Language of FatMouse
    ZOJ Problem Set–1295 Reverse Text
    ZOJ Problem Set–1712 Skew Binary
    ZOJ Problem Set–1151 Word Reversal
    ZOJ Problem Set–1494 Climbing Worm
    ZOJ Problem Set–1251 Box of Bricks
    ZOJ Problem Set–1205 Martian Addition
  • 原文地址:https://www.cnblogs.com/hantongxue/p/11487110.html
Copyright © 2020-2023  润新知