python之 while的实际应用

作业要求

编写用户登录接口

要求。登录的用户名是事先设置好的用户名

   对密码进行判断,密码输错3次需要重新登录

1、编写登录的用户名密码

2、为了节省空间。避免每次输入用户名和密码都要都去文件,拖慢程序的运行速度,在程序开始前先将文件存储到内存

3、程序开始。因为我们需要判断用户名密码我们需要一个死循环while

4、程序开始需要输入用户名

5、循环用户名密码文件进行切片

6、如果用户名密码正确

7、对密码进行判断

8、密码判断3次

9、密码正确则输出密码错误则继续循环

结果实现见一下代码

 1 #!/usr/bin/env python 
 2 #coding:utf-8
 3 
 4 name_pwd = 'name_p.txt'
 5 lock = 'lock.txt'
 6 
 7 #读取用户名密码存放的文件节省内存
 8 f = file(name_pwd)
 9 name_pwd = f.readlines()
10 f.close()
11 
12 while True:
13     username = raw_input('请输入你的用户名:').strip()#输入用户名密码
14     for line in name_pwd:#循环用户名密码的存放文件
15         line = line.split()#对用户民密码进行切片
16         if username == line[0]:#用户名正确
17             #对密码进行判断
18             for i in range(10):
19                 password = raw_input('请输入你的密码:')
20                 if password == line[1]:#密码正确
21                     print '欢迎 %s 你的光临 '%username
22                     break
23                 elif password == '':
24                     print '输入的密码为空'
25                 else:
26                     print '密码错误'
27 
28                 break
29         else:
30             continue

此时我们的基本要求就实现了。但是还有一个问题。如果我们的用户名密码是正确的我还是没办反跳出循环怎们办?

这个时候我们需要告诉程序你的用户名密码输入正确了,需要跳出循环,怎么告诉

这个时候我们需要在判断完用户名密码后需要有返回值

 1 #!/usr/bin/env python 
 2 #coding:utf-8
 3 
 4 name_pwd = 'name_p.txt'
 5 lock = 'lock.txt'
 6 
 7 #读取用户名密码存放的文件节省内存
 8 f = file(name_pwd)
 9 name_pwd = f.readlines()
10 f.close()
11 
12 while True:
13     login = False
14     username = raw_input('请输入你的用户名:').strip()#输入用户名密码
15     for line in name_pwd:#循环用户名密码的存放文件
16         line = line.split()#对用户民密码进行切片
17         if username == line[0]:#用户名正确
18             #对密码进行判断
19             for i in range(10):
20                 password = raw_input('请输入你的密码:')
21                 if password == line[1]:#密码正确
22                     print '欢迎 %s 你的光临 '%username
23                     login = True
24                     break
25                 elif password == '':
26                     print '输入的密码为空'
27                 else:
28                     print '密码错误'
29 
30             if login == True:#跳出for循环
31                 break
32         else:
33             continue
34 
35     if login == True:break#跳出for循环

 

posted @ 2015-09-22 16:29  不入流码农  阅读(446)  评论(0编辑  收藏  举报