Python密码验证小练习

目标:1.设置一个密码为123456

   2.输入正确密码有成功提示,输入错误有错误提示并可重新输入

   3.共有3次输入错误的机会,超过之后锁定。

   4.输入‘reset’可以设置新密码,原密码作废。

代码如下:

 1 password_list = ['123456']
 2 def account_login():
 3     x = 1
 4     while x < 4:
 5         password = input('Please input password:')
 6         if password == password_list[-1]:
 7             print('Access permission!!!')
 8             break       #成功登陆之后跳出循环
 9         elif password == 'reset':
10             new_password = input('New password:')
11             password_list.append(new_password)
12             print('You have changed password successfully!')
13             account_login()
14             break       #这里这个break必须要加,否则执行完上一个函数后,会再次进入while循环中
15         elif x < 4:     #前三次失败输出登录失败信息
16             print('Access deny')
17             if x <3 :   #前两次失败输出重输信息
18                 print('Please type again, you have ' + str(3 - x) + ' times left.')
19                 print("You can type 'reset' to reset password.")
20             x = x + 1
21     if x == 4:          #第四次失败循环结束,提示锁定
22         print('Sorry,your account is locked!')
23 account_login()

 

总结:

1.一开始在执行reset密码部分的时候,发现重设密码之后,输入新的密码提示登陆成功,然后又跳出一次输入密码,分析后发现是第二个elif完全执行后又再次进入while造成。

添加14行的break之后解决。

2.在重设密码的时候用到了append + list[],这里回顾下appen和extend的区别

 1 >>> a=[1,2,3,4,5]
 2 >>> b=['x','y','z']
 3 >>> a.append(b)
 4 >>> print(a)
 5 [1, 2, 3, 4, 5, ['x', 'y', 'z']]
 6 
 7 >>> a=[1,2,3,4,5]
 8 >>> b=['x','y','z']
 9 >>> a.extend(b)
10 >>> print(a)
11 [1, 2, 3, 4, 5, 'x', 'y', 'z']

 

posted @ 2018-02-28 09:53  Jockey浩  阅读(919)  评论(0编辑  收藏  举报