Linux python作业

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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值