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循环