一、数据类型的选择原则:存不是目的,目的是为了取,并且能够方便地取,请使用合适的类型与变量名记录下述状态
1.病毒程序需要定期将监控到的数据写入日志文件,请记录下日志文件路径C:\a\b\c\adhsvc.dll.system32,方便后期处理
字符串 log_path = r'C:\a\b\c\adhsvc.dll.system32'
python中有加反斜杠 \ 进行转义的情况,\a,\b为转义字符,因此在前面加r防止转义;加r是为了告诉编译器这个string是raw string,不要转义backflash '\'。
2.病毒程序在上传文件时,发送的报头数据里需要包含文件信息:文件名a.txt、大小360,请记录下文件信息
字符串 file_name = 'a.txt'
整型 file_size = 360
3.程序运行过程中有一段错误日志需要记录下来,错误日志为"上传文件失败"
字符串 error_log = "上传文件失败"
4.假设我收到一条信息要记录,信息为中病毒客户端的信息"[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
字符串 victm_info = "[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
5.把服务端ip地址存放下来,ip地址为10.0.10.11
字符串 serve_ip = '10.0.10.11'
6.病毒程序需要每隔3秒才运行一次,请记录下这个时间间隔
整型 wait_time = 3
二、嵌套取值操作
1.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.get('company_info').get('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].get('hobbies')[1])
三、选做题:编写用户登录接口
1.输入账号密码完成验证,验证通过后输出"登录成功"
user_info = ['vincent','888888']name = input('请输入您的账号:')pwd = input('请输入您的密码:')if name == user_info[0] and pwd == user_info[1]: print('登录成功。')else: print('账号或密码错误,登录失败。')
2.可以登录不同的用户
user_info = { 'vincent':'666666', 'egon':'777777', 'tank':'888888', 'umi':'999999'}name = input('请输入您的账号:')pwd = input('请输入您的密码:')#判断输入的账号是否存在if name in user_info: #判断密码是否正确 if pwd == user_info.get(name): print('登录成功。') else: print('密码错误,登录失败。')else: print('您输入的账号不存在。')
3.同一账号输错三次锁定(附加功能,在程序一直运行的情况下,一旦锁定,则锁定5分钟后自动解锁)扩展需求:在3的基础上,完成用户一旦锁定,无论程序是否关闭,都锁定5分钟
user_info = { 'vincent': {'pwd': '666666', 'count': 0}, 'egon': {'pwd': '777777', 'count': 0}, 'tank': {'pwd': '888888', 'count': 0}, 'umi': {'pwd': '999999', 'count': 0}}import osimport timewhile True: name = input('请输入您的账号:') password = input('请输入您的密码:') # 判断输入的账号是否存在 if name in user_info: # 判断密码是否正确 if password == user_info.get(name).get('pwd'): #判断当前用户是否存在锁定信息 if os.path.exists(name+'.txt'): f1 = open(name+'.txt','r',encoding='utf-8') lock_time = f1.read() f1.close() times = time.time() #判断当前时刻与被锁定时刻的时间差是否小于规定的锁定时间,如果小于,则继续锁定 if times-float(lock_time)<=120: print('您的账号已锁定,%ss后解锁。'%(int(120-(times-float(lock_time))))) print('-'*20,end='') time.sleep(int(120-(times-float(lock_time)))) print('账号锁定解除') user_info[name]['count'] = 0 continue else: print('登录成功。') break else: print('登录成功。') break else: #密码错误则count数加1 user_info[name]['count'] += 1 print('密码错误,登录失败。') if user_info.get(name).get('count') >= 3: #当count数大于等于3时,锁定该账户 print('3次或3次以上输入密码错误,账号已锁定。') print('-'*20,end = '') times = time.time() #将当前时间写入到txt文本中保存起来 f1 = open(name+'.txt','w',encoding = 'utf-8') f1.write(str(times)) f1.close() time.sleep(120) print('账号锁定解除') user_info[name]['count'] = 0 continue else: continue else: print('您输入的账号不存在。')
来源:https://www.cnblogs.com/leilijian/p/12335508.html