zoukankan      html  css  js  c++  java
  • 第一个python程序-判断登陆用户名和密码是否正确

     1 #setencoding=utf-8
     2 #用户名和密码输入正确,则登陆成功
     3 #用户名正确密码错误,只再输入密码,有3次机会
     4 #错误3次,则把用户名放入lock中
     5 import os,sys
     6 #存放用户名和密码的文件是E:pythonuser.txt
     7 accounts_file = 'E:\python\user.txt'
     8 #被锁的用户要写入此文件
     9 lock_file = 'E:\python\lock.txt'
    10 #先读出来放内存中,免得每次输入用户后进行判断都要打开文件
    11 user =file(accounts_file)
    12 account_list=user.readlines()
    13 user.close()
    14 #控制是否退出while大循环的标识
    15 loginSucess =False
    16 #这里用的大while循环,所以用户名输不对,就会一直输,如果想限制用户名输入次数,那么while改成for
    17 while True:
    18     #raw_input是一个内置函数,获取用户输入,与用户建立交互
    19     #strip()是忽略空格
    20     username = raw_input('username:').strip()
    21     #先判断用户名是否存在,用户名如果存在才继续,如果不存在,直接跳出循环,结束
    22     if len(username)!=0:
    23         #用户名如果不为空的时候,判断是不是存在
    24         for i in account_list:
    25             #i读到的是一行,而一行有2列,第1列就是索引为0的才是用户名,第二列索引为1的是密码
    26             #split()方法是分隔符,默认是空格,
    27             i = i.split()
    28             if username==i[0]:#用户名正确
    29                 #用户名正确的时候,只给3次输入密码的机会
    30                 for x in range(3):
    31                     password = raw_input('password:').strip()
    32                     if password==i[1]:
    33                         loginSucess=True#如果为True的时候,直接走上上级for下的if,欢迎完就退出
    34                         break
    35                         #如果密码错误
    36 
    37                 #如果匹配正确或循环中有break就退出,,else不执行
    38                 else:
    39                     print '%s ,你已经输入错误密码3次了,going to lock ' %username
    40                     l = file(lock_file,'a')
    41                     l.write(username+'
    ')
    42                     l.close()
    43                     view  = file(lock_file)
    44                     print view.read()
    45 
    46         if loginSucess is True:
    47             print '登陆成功,welcome to my system!!!'
    48             break     #登陆成功就直接跳出while大循环
    49         elif loginSucess is False:  #这种是用户名输入错误,它的节点在用户不为空的条件之下 ,这里不能用break,不能跳出while大循环,因为我要你一直输,直到成功
    50             print '用户名输入错误,请重新输入。'
    51         else:  #用户名也正确,输入密码不正确3次
    52             print '%s,sorry ,输入密码3次错误你已被锁' % username
    53             break
    54     else:#用户名输入为空的时候
    55         continue
  • 相关阅读:
    bzoj 3456 城市规划 —— 分治FFT / 多项式求逆 / 指数型生成函数(多项式求ln)
    洛谷 P4721 [模板]分治FFT —— 分治FFT / 多项式求逆
    CF 438 E & bzoj 3625 小朋友和二叉树 —— 多项式开方
    Codeforces 447
    Codeforces 1099
    Codeforces 991
    Codeforces 994
    Codeforces 989
    Codeforces 1084
    xj膜你赛(n-1)
  • 原文地址:https://www.cnblogs.com/sincoolvip/p/5960125.html
Copyright © 2011-2022 走看看