Python登录验证小程序脚本(只是简单的输入验证流程,无严格的字符输入过滤判定)

脚本程序流程图:

警告:使用此脚本前请先看清楚流程图:笔者的判断“输入次数>3?”是对输入用户和密码都为非空后进行的判断,别不看清楚流程就瞎判定不能退出。

倘若要对“输入次数>3?”包括整个输入过程(输入为空和非空):注意python对缩进很严格!可看下文login.py-v2.0
请在if语句下添加
retry_counter += 1 
并修改相应的错误提示:
print 'ERROR : Username cannot be empty! Only %s more chances!' % (3 - retry_counter  )


login.py-v1.0:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
#输入以上一行才可以识别中文字符注释#
# -------------------------------------------------------------------------------
# FileName:    login.py
# Revision:    1.0
# Date:        2017/09/20
# Author:      XAD
# Email:       [email protected]
# Website:     http://onenice.blog.51cto.com/
# Description: check login
# Notes:       ~此版本计数器在判定输入都为非空后生效
# -------------------------------------------------------------------------------
# Copyright:   2017(c)XAD
# License:     GPL
 
import sys
username = 'xad'
password = 'xad123'
retry_counter = 0
#login_status = 'NO'
login_status = 'YES'
#用这个来模拟用户是否已在线#
 
 
# login verification part #
while retry_counter <3 :
#当retry_counter !在判定输入都为非空后才计数!大于3次则退出#
  user = raw_input('Username:').strip()
  if len(user) ==0:
  #验证输入用户是否为空,是则继续循环,否则进入下一步验证输入#
    print "ERROR : Username cannot be empty!"
    continue
  passwd = raw_input('Password:').strip()
  if len(passwd) == 0:
  #验证输入密码是否为空,是则继续循环,否则跳出循环#
    print "ERROR : Password cannot be empty!"
    continue   
  else:
    if user == username  and  passwd == password:
    #验证用户密码是否都正确,都正确才允许登录!#
       if login_status == 'YES':
          sys.exit('Sorry, user %s has been logining!' % user )
       else:
          sys.exit('Welcome %s logining to system!' % user )
    else:
      #retry_counter = retry_counter + 1
      retry_counter += 1
      print 'Wrong username or password, please verify your username or password ! \nOnly %s more chances!' % (3 - retry_counter  )



login.py-v2.0:

Python登录验证小程序脚本_第1张图片

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
#输入以上一行才可以识别中文字符注释#
# -------------------------------------------------------------------------------
# FileName:    login.py
# Revision:    2.0
# Date:        2017/09/22
# Author:      XAD
# Email:       [email protected]
# Website:     http://onenice.blog.51cto.com/
# Description: check login
# Notes:       ~计数器全程输入生效
# -------------------------------------------------------------------------------
# Copyright:   2017(c)XAD
# License:     GPL
  
import sys
username = 'xad'
password = 'xad123'
retry_counter = 0
#login_status = 'NO'
login_status = 'YES'
#用这个来模拟用户是否已在线#
  
  
# login verification part #
while retry_counter <3 :
#当retry_counter 大于3次则退出#
  user = raw_input('Username:').strip()
  if len(user) ==0:
  #验证输入用户是否为空,是则继续循环并计数,否则进入下一步验证输入#
    retry_counter += 1
    print 'ERROR : Username cannot be empty! Only %s more chances!' % (3 - retry_counter  )
    continue
  passwd = raw_input('Password:').strip()
  if len(passwd) == 0:
  #验证输入密码是否为空,是则继续循环并计数,否则跳出循环#
    retry_counter += 1
    print 'ERROR : Password cannot be empty! Only %s more chances!' % (3 - retry_counter  )
    continue   
  else:
    if user == username  and  passwd == password:
    #验证用户密码是否都正确,都正确才允许登录!#
       if login_status == 'YES':
          sys.exit('Sorry, user %s has been logining!' % user )
       else:
          sys.exit('Welcome %s logining to system!' % user )
    else:
      #retry_counter = retry_counter + 1
      retry_counter += 1
      print 'Wrong username or password, please verify your username or password ! \nOnly %s more chances!' % (3 - retry_counter  )