day03作业

#一:选择合适的类型加以存储

#1、病毒程序需要定期将监控到的数据写入日志文件,请记录下日志文件路径C:acadhsvc.dll.system32,方便后期处理
  log_file_path="C:acadhsvc.dll.system32"


#2、病毒程序在上传文件时,发送的报头数据里需要包含文件信息:文件名a.txt、大小360,请记录下文件信息
  file_info={"fname":"a.txt","size":"360"}


#3、程序运行过程中有一段错误日志需要记录下来,错误日志为"上传文件失败"
  log_error="上传文件失败"


#4、假设我收到一条信息要记录,信息为中病毒客户端的信息"[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
  data_get="[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"


#5、把服务端ip地址存放下来,ip地址为10.0.10.11
  ip="10.0.10.11"


#6、病毒程序需要每隔3秒才运行一次,请记录下这个时间间隔
  time_sleep=3


# 二:嵌套取值操作
#1、students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
请取出第一个学生的第一个爱好
  students_info[0][2][0]


#2、针对字典
info={
'name':'egon',
'hobbies':['play','sleep'],
'company_info':{
'name':'Oldboy',
'type':'education',
'emp_num':40,
}
}
请取出取公司名
  info["company_info"]["name"]

#3、针对下述类型
students=[
{'name':'alex','age':38,'hobbies':['play','sleep']},
{'name':'egon','age':18,'hobbies':['read','sleep']},
{'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
取第二个学生的第二个爱好
  students[1]["hobbies"][1]

#选做题:编写用户登录接口(学的多的同学,尝试做下述作业,这是截止到下周二学完文件处理之后的作业)
#1、输入账号密码完成验证,验证通过后输出"登录成功"
#2、可以登录不同的用户
#3、同一账号输错三次锁定(附加功能,在程序一直运行的情况下,一旦锁定,则锁定5分钟后自动解锁)
#扩展需求:在3的基础上,完成用户一旦锁定,无论程序是否关闭,都锁定5分钟

目录树:

─day04
    │  
    │
    ├─user_info_db
    │  
    │
    ├─user_info_db_bak
    │
    │
    ├─用户登入.py

代码:

# -- coding: UTF-8 --
import time

flag=True
count=1
while flag:
    user_inpt=input("请输入账号:").strip("")
    user_pass=input("请输入密码:").strip()
    with open("user_info_db_bak", "r", encoding="utf-8") as f1:
        for line in f1:
            line = line.strip("
")
            line = line.split(":")
            if user_inpt == line[0] and line[2] == "3":
                time.sleep(300)
                with open("user_info_db", "r", encoding="utf-8") as f0, 
                        open("user_info_db_bak", "w", encoding="utf-8") as f1:
                    for line in f0:
                        line = line.strip("
")
                        line = line.split(":")
                        if user_inpt in line:
                            line[2] = "0"
                        f1.write("%s:%s:%s
" % (line[0], line[1], line[2]))

    with open("user_info_db", "r", encoding="utf-8") as f0:
        for line in f0:
            line = line.strip("
")
            line = line.split(":")
            if user_inpt == line[0] and user_pass == line[1]:
                print("登入成功。")
                flag = False
                break

        else:
            print("账号或密码错误,请重新输入。")
            with open("user_info_db_bak", "r", encoding="utf-8") as f1:
                for line in f1:
                    line = line.strip("
")
                    line = line.split(":")
                    if user_inpt in line:
                        count=int(line[2])
                        count+=1
            
            with open("user_info_db", "r", encoding="utf-8") as f0, 
                    open("user_info_db_bak", "w", encoding="utf-8") as f1:
                for line in f0:
                    line = line.strip("
")
                    line = line.split(":")
                    if user_inpt in line:
                        line[2]=str(count)
                    f1.write("%s:%s:%s
" %(line[0],line[1],line[2]))
原文地址:https://www.cnblogs.com/baicai37/p/12409096.html