码迷,mamicode.com
首页 > 编程语言 > 详细

python开发基础例题

时间:2017-09-07 21:23:14      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:python   掉换行符   col   utf-8   lis   pytho   lin   状态   匹配   

编写登陆接口

基础需求:

  • 让用户输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后退出程序

 

升级需求:

  • 可以支持多个用户登录 (提示,通过列表存多个账户信息)
  • 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
    技术分享
    #!/usr/bin/python3.6
    #_*_ coding:utf-8 _*_
    
    import sys,os,getpass
    
    
    os.system(cls)
    i = 0
    while i < 3:                                                        #只要用户登录异常不超过3次就不断循环
        name = input("请输入用户名:")
    
        lock_file = open(account_lock.txt,r+)                       #当用户输入用户名后,打开LOCK 文件 以检查是否此用户已经LOCK了
        lock_list = lock_file.readlines()
    
        for lock_line in lock_list:                                     #循环LOCK文件 
            lock_line = lock_line.strip(\n)                           #去掉换行符
            if name == lock_line:                                       #如果LOCK了就直接退出
                sys.exit(用户 %s 已经被锁定,退出 % name)  
    
        user_file = open(account.txt,rb)                             #打开帐号文件
        user_list = user_file.readlines()                               
        for user_line in user_list:                                     #对帐号文件进行遍历
            (user,password) = user_line.strip(\n).split()             #分别获取帐号和密码信息
            if name == user:                                            #如用户名正常匹配
                j = 0
                while j < 3:                                            #只要用户密码异常不超过3次就不断循环
                    passwd = getpass.getpass(请输入密码:)            #输入隐藏密码
                    if passwd == password:                              #密码正确,提示欢迎登录
                        print(欢迎登录管理平台,用户%s % name)        
                        sys.exit(0)                                     #正常退出
                    else:
                        if j != 2:                                      #j=2时,是最后一次机会,不用在提示还剩余0次机会了
                            print(用户 %s 密码错误,请重新输入,还有 %d 次机会 % (name,2 - j))
                    j += 1                                              #密码输入错误后,循环值增加1
                else:
                    lock_file.write(name + \n)                        #密码输入三次错误后,将该用户追加到LOCK文件
                    sys.exit(用户 %s 达到最大登录次数,将被锁定并退出 % name)
            else:
                pass                                                    #当用户没匹配时,跳过并继续循环
        else:
            if i != 2:                                                  #i=2时,是最后一次机会,不用在提示还剩余0次机会了
                print(用户 %s 不存在,请重新输入,还有 %d 次机会 % (name,2 - i))
        i += 1                                                          #当用户输入错误时,循环值增加1
    else:
        sys.exit(用户 %s 不存在,退出 % name)                         #用户输入三次错误后,异常退出
               
    lock_file.close()                                                   #关闭LOCK文件
    user_file.close()                                                   #关闭帐号文件
    View Code

     


python开发基础例题

标签:python   掉换行符   col   utf-8   lis   pytho   lin   状态   匹配   

原文地址:http://www.cnblogs.com/huangxiaohan/p/7491635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!