python核心编程第九章(9-12)
来源:互联网 发布:恐龙战队 知乎 编辑:程序博客网 时间:2024/06/05 03:45
import shelve
import time
def login():
"""9–12. 用户名和密码.回顾练习 7-5 , 修改代码使之
可以支持"上次登录时间".请参阅 time 模块中的文档了解
如何记录用户上次登录的时间. 另外提供一个"系统管理员",
它可以导出所有用户的用户名, 密码(如果想要的话,你可
以把密码加密),以及"上次登录时间"."""
prompt = '''
---------------------
[N]ew user login
[O]ld user login
[A]dminstrator login
[E]xit login UI
---------------------
'''
fun = {'n' : newUser,
'o' : oldUser,
'a' : admin}
while True:
slt = raw_input(prompt).strip()[0].lower()
if slt == 'e': return False
if slt not in 'noa': print 'Invalid selection,try agin!'
else: fun[slt]()
def newUser():
#shelve
print 'Welcome to the first login!'
name = raw_input('Please enter username: ').strip()
pwd = raw_input('Plase enter passward: ').strip()
if name in getInfo():
print 'User name have existed!'
return False
storeInfo(name,pwd)
def oldUser():
#shelve
print 'Welcome back!'
name = raw_input('Please enter username: ').strip()
pwd = raw_input('Plase enter passward: ').strip()
sp = shelve.open('dbm')
if name in sp.keys():
if pwd == sp[name][0]:
if timer(sp[name][1]) < 4:
print 'You already logged in at: %s.'\
%(time.ctime(sp[name][1]))
else:
print 'Login successfully!'
sp[name][1] = time.time()
else: print 'Pwd incorrect!'
def admin():
# shelve
prompt = '''
--------------------
[S]how all user info
[D]elete user info
--------------------
'''
enter = raw_input(prompt).strip()[0].lower()
sp = shelve.open('dbm')
if 0 == len(sp.keys()):
print 'No user info!'
return False
if 's' == enter:
print 'All user info:'
for key in sp.keys():
print 'Name: %s - Pwd: %s' %(key,sp[key][0])
elif 'd' == enter:
user = raw_input('Please enter the user you want to delet:').strip()
del sp[user]
print 'Delete successfully'
#shelve
ctm = time.time()
with shelve.open('dbm') as sp:
sp[nm] = [pw,ctm]
print 'Register successfully!'
def getInfo():
#shelve
with shelve.open('dbm') sp:
return sp.keys()
def timer(tm):
return (time.time()-tm)/360
import time
def login():
"""9–12. 用户名和密码.回顾练习 7-5 , 修改代码使之
可以支持"上次登录时间".请参阅 time 模块中的文档了解
如何记录用户上次登录的时间. 另外提供一个"系统管理员",
它可以导出所有用户的用户名, 密码(如果想要的话,你可
以把密码加密),以及"上次登录时间"."""
prompt = '''
---------------------
[N]ew user login
[O]ld user login
[A]dminstrator login
[E]xit login UI
---------------------
'''
fun = {'n' : newUser,
'o' : oldUser,
'a' : admin}
while True:
slt = raw_input(prompt).strip()[0].lower()
if slt == 'e': return False
if slt not in 'noa': print 'Invalid selection,try agin!'
else: fun[slt]()
def newUser():
#shelve
print 'Welcome to the first login!'
name = raw_input('Please enter username: ').strip()
pwd = raw_input('Plase enter passward: ').strip()
if name in getInfo():
print 'User name have existed!'
return False
storeInfo(name,pwd)
def oldUser():
#shelve
print 'Welcome back!'
name = raw_input('Please enter username: ').strip()
pwd = raw_input('Plase enter passward: ').strip()
sp = shelve.open('dbm')
if name in sp.keys():
if pwd == sp[name][0]:
if timer(sp[name][1]) < 4:
print 'You already logged in at: %s.'\
%(time.ctime(sp[name][1]))
else:
print 'Login successfully!'
sp[name][1] = time.time()
else: print 'Pwd incorrect!'
else: print 'User name not existed!'
sp.close()
def admin():
# shelve
prompt = '''
--------------------
[S]how all user info
[D]elete user info
--------------------
'''
enter = raw_input(prompt).strip()[0].lower()
sp = shelve.open('dbm')
if 0 == len(sp.keys()):
print 'No user info!'
return False
if 's' == enter:
print 'All user info:'
for key in sp.keys():
print 'Name: %s - Pwd: %s' %(key,sp[key][0])
elif 'd' == enter:
user = raw_input('Please enter the user you want to delet:').strip()
del sp[user]
print 'Delete successfully'
sp.close()
#shelve
ctm = time.time()
with shelve.open('dbm') as sp:
sp[nm] = [pw,ctm]
print 'Register successfully!'
def getInfo():
#shelve
with shelve.open('dbm') sp:
return sp.keys()
def timer(tm):
return (time.time()-tm)/360
0 0
- python核心编程第九章(9-12)
- python核心编程第九章(9-11)
- python核心编程第九章(9-10)
- Python核心编程 第九章
- 《Python核心编程》第九章
- python 核心编程 第九章
- Python核心编程第九章笔记
- python核心编程--第九章 9.11 练习
- python核心编程第九章答案
- Python核心编程 第九章练习
- python核心编程第九章练习
- python 核心编程第九章练习题
- 《Python核心编程》第九章编程题代码
- python核心编程第九章习题答案(1)
- python核心编程第九章习题答案(2)
- python核心编程第九章习题答案(3)
- python核心编程第九章_文件系统的一个程序
- 《Python核心编程》第九章:文件和输入输出
- union和union all的区别
- iOS项目移植出现My Mac 64-bit解决方法
- 深入分析基类定义 --以Cocos2d-x游戏开发之旅为例 课本第5章 little runner游戏分析之1
- [Java核心技术]学习笔记--第一章
- ubuntu12.04常用快捷键
- python核心编程第九章(9-12)
- android 学习-Android Fragment 深度解析
- Eclipse快捷键大全
- 求字符串的不重复字符的最长子串长度的问题
- 第十一周项目2.1两个数的最大公约数
- windows LARGE_INTEGER 错误码输出格式
- HttpSessionBindingListener接口介绍
- OpenStack大数据项目Sahara概述
- 几个cocoa类的透明