作业思路:如何选择合适的类型来记录状态???
1、选取的类型是否可以明确标识事物的状态
2、存不是目的,存的目的是为了日后取出来用,并且方便的用
3、把自己想象成一台计算机,如果我是计算机,
我会如何以何种形式把事物的状态记到脑子里
然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态
ps:认真读题,需要自己从题目中分析出应该存储的状态,然后选择合适的类型加以存储
1、病毒程序需要定期将监控到的数据写入日志文件,请记录下日志文件路径C:\a\b\c\adhsvc.dll.system32,方便后期处理
file_path = r"C:\a\b\c\adhsvc.dll.system32"
2、病毒程序在上传文件时,发送的报头数据里需要包含文件信息:文件名a.txt、大小360,请记录下文件信息
file_name = 'a.txt'
file_size = 360
3、程序运行过程中有一段错误日志需要记录下来,错误日志为"上传文件失败"
error = "上传日志失败"
4、假设我收到一条信息要记录,信息为中病毒客户端的信息"[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
import time
ip1 = "80.82.70.187:33649"
print("[%s] 癞蛤蟆病毒感染者—> %s 正在上传数据" % (time.strftime('%Y-%m-%d %H:%M:%S'), ip1))
5、把服务端ip地址存放下来,ip地址为10.0.10.11
ip = "10.0.10.11"
6、病毒程序需要每隔3秒才运行一次,请记录下这个时间间隔
time_interval = 3
二:嵌套取值操作
1、students_info=[[‘egon’,18,[‘play’,]],[‘alex’,18,[‘play’,‘sleep’]]]
请取出第一个学生的第一个爱好
students_info = [['egon', 18, ['play', ]], ['alex', 18, ['play', 'sleep']]]
print(students_info[0][2][0])
2、针对字典,请取出取公司名
info = {
'name': 'egon',
'hobbies': ['play', 'sleep'],
'company_info': {
'name': 'Oldboy',
'type': 'education',
'emp_num': 40,
}
}
print(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']},
]
print(students[1]['hobbies'][1])
针对个别已经学了很多的同学,有如下选做题
*选做题:编写用户登录接口(学的多的同学,尝试做下述作业,这是截止到下周二学完文件处理之后的作业)
1、输入账号密码完成验证,验证通过后输出"登录成功"
inp_name = input('请输入您的用户名:').strip()
inp_pwd = input('请输入您的密码:').strip()
if inp_name == "jason" and inp_pwd == "123":
print('登录成功!')
else:
print('登录失败!')
2、可以登录不同的用户
def login():
while True:
in_name = input('请输入您的用户名:').strip()
in_pwd = input('请输入您的密码:').strip()
with open('info.txt', mode='r', encoding='utf-8') as f:
for line in f:
name, pwd = line.strip('\n').split(':')
if name == in_name and pwd == inp_pwd:
print('登录成功')
else:
print('登录失败!请重新输入')
3、同一账号输错三次锁定(附加功能,在程序一直运行的情况下,一旦锁定,则锁定5分钟后自动解锁)
def login1():
i = 0
while i < 3:
in_name = input('请输入您的用户名:').strip()
in_pwd = input('请输入您的密码:').strip()
with open('info.txt', mode="r", encoding='utf-8') as f:
for line in f:
name, pwd = line.strip('\n').split(':')
if in_name == name and in_pwd == pwd:
print('登录成功')
break
else:
print('登录失败')
i += 1
if i >= 3:
print("身份认证错误3次,程序将锁定3分钟")
start_time = time.time()
while time.time() - start_time < 300:
# 锁定代码
time.sleep(0.1)
else:
# 解锁代码
print('解除锁定')
login1()
**扩展需求:在3的基础上,完成用户一旦锁定,无论程序是否关闭,都锁定5分钟