大作业:
1),启动程序,首页面应该显示成如下格式:
欢迎来到博客园首页
1:请登录
2:请注册
3:文章页面
4:日记页面
5:评论页面
6:收藏页面
7:退出程序
2),用户输入选项,3~6选项必须在用户登录成功之后,才能访问成功。
3),用户选择登录,用户名密码从register文件中读取验证,三次机会,
没成功则结束整个程序运行,成功之后,可以选择访问3~6项,访问页面之前,
必须要在log文件中写入日志,日志格式为-->用户:xx 在xx年xx月xx日 执行了 %s函数,
访问页面时,页面内容为:欢迎xx用户访问评论(文章,日记,收藏)页面
4),如果用户没有注册,则可以选择注册,注册成功之后,完成登录,然后进入首页选择。
Low Ver
#!/usr/bin/env python
# encoding: utf-8
# Author: MeiMeiLong <[email protected]>
# Create Date: 2019-03-16 15:23:23
# Last Modified: 2019-03-16 17:36:52
# Description:
import os,time
"""register
long 123
"""
MenuDict = {
1:'请登录',
2:'请注册',
3:'文章页面',
4:'日记页面',
5:'评论页面',
6:'收藏页面',
7:'退出程序'}
def Menu_Stat(login_stat=0):
print('欢迎来到博客园首页')
if login_stat == 0:
for key in MenuDict:
print(f'{key}:{MenuDict[key]}')
else:
for key in range(3,7):
print(f'{key}:{MenuDict[key]}')
else:
print(f'q:退出登陆')
#没成功则结束整个程序运行,成功之后,可以选择访问3~6项,访问页面之前,
def UserDict():
with open('register',mode='r',encoding='utf-8') as f:
UserDict = dict()
for line in f:
UserDict[line.split()[0]] = line.strip().split()[1]
else:
return UserDict
def UserLogin():
userdict = UserDict()
#用户选择登录,用户名密码从register文件中读取验证,三次机会,
for Num in range(3):
UserName = input('UserName:').strip()
PassWord = input('PassWord:').strip()
if userdict.get(UserName,False):
if userdict[UserName] == PassWord:
print('用户登陆成功')
time.sleep(3)
return 1,UserName,True
elif Num == 2:
return 0,0,None
else:
print('用户输入的账户或密码有误')
def UserReg():
UserName = input('注册用户:').strip()
PassWord = input('注册密码:').strip()
userdict = UserDict()
if userdict.get(UserName):
print('账户已经存在')
else:
with open('register',mode='a',encoding='utf-8') as f:
f.write(UserName+' '+PassWord +'\n')
print('用户注册成功.')
time.sleep(3)
if __name__ == '__main__':
exit_flag = True
login_stat = 0
while exit_flag:
Menu_Stat(login_stat)
#用户输入选项,3~6选项必须在用户登录成功之后,才能访问成功。
Select = input('>>>').strip()
if Select.isdigit():Select = int(Select)
if Select == 1:
login_stat,login_user,exit_flag = UserLogin()
elif Select == 2:
UserReg()
elif Select in range(3,7):
print('请登陆你的账号和密码。')
login_stat,login_user,exit_flag = UserLogin()
if login_stat == 0:
if input('您没有注册账户是否跳转到注册账户?(Y/N)').strip().upper() == 'Y':
UserReg()
elif Select == 7 or Select.upper() == 'Q':
break
else:
print('输入正确的数字.')
os.system('clear')
while login_stat == 1:
with open('log',mode='w',encoding='utf-8') as f:
Menu_Stat(login_stat)
Select = input('>>>').strip()
if Select.isdigit():
Select = int(Select)
if Select in range(3,7):
Year,Mon,Day = time.localtime()[:3]
f.write(f'用户:{login_user} 在{Year}年{Mon}月{Day}日 访问了 {MenuDict[Select]}\n')
print(f'欢迎{login_user}用户访问{MenuDict[Select]}')
else:
print('请输入正确的数值.')
elif Select.upper() == 'Q':
login_stat = 0
else:
print('请输入正确的数值.')