python学习笔记-day02

一、数据类型的选择原则:存不是目的,目的是为了取,并且能够方便地取,请使用合适的类型与变量名记录下述状态

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 os
import time
while 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('您输入的账号不存在。')

猜你喜欢

转载自www.cnblogs.com/leilijian/p/12335508.html