zoukankan      html  css  js  c++  java
  • 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']
    最懒的人就是整天忙得没时间学习、反思、成长的人。
  • 相关阅读:
    Docker常用命令
    Spark资源管理
    在Centos 7上安装Docker
    Docker网络管理
    Tensorflow 入门
    Spark远程调试函数
    Spark核心组件
    Spark job执行流程消息图
    数据库优化实践【性能检测工具篇】
    软件工程之系统建模篇【设计数据模型】
  • 原文地址:https://www.cnblogs.com/jockeyhao/p/8482055.html
Copyright © 2011-2022 走看看