1.登陆系统
a)使它能记录用户上次的登录日期和时间(用 time 模块),并与用户密码一起保存起来。程序的界面有要求用户输入用户名和密码的提示。无论户名是否成功登录,都应有提示,在户名成功登录后,应更新相应用户的上次登录时间戳。如果本次登录与上次登录在时间上相差不超过4个小时,则通知该用户: “You already logged in at: last_login_time.”
(b) 添加一个“管理”菜单,其中有以下两项:(1)删除一个用户 (2)显示系统中所有用户的名字和他们的密码的清单
user_login.py
#!/usr/bin/env python
#coding:utf-8
import getpass
import time
def Login():
for i in [1,2,3,4]:
if i == 4:
print "3 after login error !!"
break
username = raw_input("Please input username:")
# password = raw_input("Please input password:")
fp = open("user_login",'r+')
password = getpass.getpass("Please input password:")
for user_string in fp.readlines():
last_login_time = user_string[user_string.find(' ')+2:len(user_string)]
user = user_string[0:user_string.find(' ')]
passwd = user_string[user_string.find(' ')+1:user_string.find(' ')]
login_time = last_login_time
if username == user and password == passwd:
print "login in"
login_time = time.strftime("%Y-%m-%d %X",time.localtime())
Delete(user)
Create(username,password)
hour = int(login_time[11:13])
last_hour = int(last_login_time[11:13])
if last_hour+4 > hour or last_hour-20 > hour:
print "You already logged in at:",last_login_time
break
if last_login_time == login_time :
print "username or password error !!!"
print "There are %s chances" %(3-i)
print
else:
fp.close()
break
def Create(username,password):
fp = open("user_login",'a')
login_time = time.strftime("%Y-%m-%d %X",time.localtime())
user_string = username +" "+ password +" "+ login_time + '\n'
fp.write(user_string)
fp.close()
def Delete(user):
fp = open("user_login",'r')
user_file = fp.readlines()
fp = open("user_login",'w')
for x in user_file:
if user in x:
continue
else:
fp.write(x)
fp.close()
def Show():
fp = open("user_login",'r')
for user_string in fp.readlines():
print user_string
fp.close()
print
def Exit():
print "Good-bye"
exit()
def menu():
print "MENU"
print "Login in (1)"
print "Create new (2)"
print "Show anything (3)"
print "Delete (4)"
print "Exit (0)"
while 1:
menu()
select = raw_input("Please input your select :")
if select == "0":
Exit()
elif select == "1":
Login()
elif select == "2":
username = raw_input("Please input new username:")
password = raw_input("Please input new password:")
Create(username,password)
print username,"successfully create "
print
elif select == "3":
Show()
elif select == "4":
username = raw_input("please input you want delete username:")
Delete(username)
print username,"successfully delete "
print
else:
print "Input error,please enter again!!!"
user_login
fendai westos 2017-03-30 12:43:16
flower flower 2017-03-30 12:51:40
2.人力资源。创建一个简单的雇员姓名和编号的程序。让用户输入一组雇员姓名和编号。你的程序可以提供按照姓名排序输出的功能,雇员姓名显示在前面,后面是对应的雇员编号。附加题:添加一项功能,按照雇员编号的顺序输出数据。
#!/usr/bin/env python
#coding:utf-8
num = input("please input total number of name:")
l1 = []
l2 = []
i = 0
while i < num:
i += 1
name = raw_input("please input name:")
number = raw_input("please input number:")
l1.append([name,number])
l2.append([number,name])
l1.sort()
l2.sort()
print "Sort by name:"
for i in l1:
print i
print "Sort by number:"
for i in l2:
print i