python循环判断应用一(用户登陆菜单)

题目要求:

1.编写登陆接口

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

思路

  1.通过文件的形式来记录用户信息,名字和密码。

  2.利用python open特性来开启文件行,追加文件行等。

  3.利用文件行进行循环文件与内容对比,可以利用(user,password) = u_line.strip('\n').split()  

     其中strip('\n').split() 是去除空格和换行符。


流程图:

 

 

 1 ! /usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author: Delong Wang
 4 import sys
 5 
 6 name = input("请输入用户名:")
 7 u_lock_file = open("userlock.txt","r")                                                  #开启黑名单信息文件
 8 u_lock_list = u_lock_file.readlines()                                                      #转换文件转换为应用序列
 9 for u_lock in u_lock_list: #对文件进行循环
10       #u_lock = u_lock.strip('\n')
11       if name == u_lock:
12         print ("用户已经锁定,请联系管理员!!!")
13         u_lock_file.close()     #关闭文件
14         sys.exit()    #退出登陆系统
15 u_file = open("user.txt","r") #开启用户信息文件
16 u_list = u_file.readlines() # 对文件进行转换
17 u_file.close()  #关闭文件
18 for u_line in u_list:       #对文件内容进行循环
19     (user,password) = u_line.strip('\n').split()    #转换文件内容为数据字典格式
20     if name == user: #进行判断当用户存在时进行下一步
21          for i in range(3): #进行三次循环对密码进行核对
22             passwd = input("请输入你的密码:")      # 输入密码变量值
23             if passwd == password:      #判断密码是否正确
24                 print ('登陆成功!欢迎你!') # 当正确时提示登入成功
25                 sys.exit() #完成后退出
26             else:
27                 if i != 2:  #当i不等于二时,进行下面的判断,进继续循环
28                  mgs='''用户%s密码错误,请重新输入,错误%d次''' % (name,i + 1 )  #定义字符串并且给于变量值
29                  print (mgs)
30                 else:      #否则就进行下面的操作
31                  mgs = '''你的用 %s密码错误次数已达到 %d 次将锁定账号''' % (name, i + 1)
32                  print (mgs)
33                  u_lock_file = open("userlock.txt", "a")    #开启黑名单文件,模式是追加
34                  u_lock_file.write("\n"+ name)      #把用户名记入黑名单里面
35                  u_lock_file.close()
36                  sys.exit()
37     else:  #第一层循环判段中不符合上一个判断的进行下面的操作
38      pass
39 print("对不起你输入的用户不存在请联系平台管理员!或选择注册!!!")   #当要不过户信息不存在文件中时进行一个友好的提示
40 #------------------------------下面的代码是提示用户进行自动注册循环---------------------------------------------------
41 for d in range (3): #进入提示输入循环
42     choice = input("你要注册吗?y/n:")  #提示输入信息
43     if choice == "n":                    #当用户选择不注册时进行下面操作
44         print("你选择了不注册系统终止!!!")
45         sys.exit() #进行友好的提示并结束
46     elif choice == "y":             #客户选择注册时进行下面的操作
47         nname = input("请输入你的用户名:")  #提示输入信息
48         for e in range(2): #进入输入次数循环
49             pw = input("请输入密码:")
50             pww = input("请再次输入密码:") #两次提示输入密码信息
51             if pw == pww:       #进行判断当两次输入密码相同时下面的步骤进行写入到用户信息文件
52                 u_file = open("user.txt", "a")
53                 u_file.write("\n"+ nname + " "+ pw)
54                 u_file.close()
55                 sys.exit() #完成后退出
56             else:
57                 print("两次密码输入错误请继续!!!")  #密码错误进行友好提示
58         print("你已经没有机会了请下次注册!!!")   #超出循环进行友好提示(错误次数过多)
59         sys.exit() # 退出
60     else:
61         print("输入错误!!!")  #对注册提示输入错误进行提示
62 print("错误次数太多退出系统!!!") #超出循环进行提示
63 sys.exit()
实现代码

 

 

 

posted @ 2016-08-27 17:10  DelongWang  阅读(117)  评论(0)    收藏  举报