学会python——密码校验(python实例三)

目录

1、认识Python

2、环境与工具

[2.1 python环境](#2.1 python环境)

[2.2 pycharm编译](#2.2 pycharm编译)

3、纠正密码输入的格式问题

[3.1 代码构思](#3.1 代码构思)

[3.2 代码示例](#3.2 代码示例)

[3.3 运行结果](#3.3 运行结果)

4、总结


1、认识Python

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字或标点符号,它具有比其他语言更有特色的语法结构。

2、环境与工具

2.1 python环境

在Windows上使用命令行窗口查看所安装的python版本

python 

2.2 pycharm编译

在这里可以直接使用社区版的pycharm进行代码编译。

3、纠正密码输入的格式问题

3.1 代码构思

登录密码在设置的时候为了保证其复杂性,往往需要满足由大写字母、小写字母、符号、数字组成,并且不能少于8位。

在这则代码中使用大写、小写、符号、数字识别方法,作为检验的方式,来辨别设置的密码的格式是否由问题

3.2 代码示例

def check_len(pwd):
    #检查密码长度是否大于八位
    if len(pwd)>=8:
        return True
    else:
        return False
    #检查密码组成
def check(pwd):
    check=[0,0,0,0]
    for char in pwd:
        #如果是小写
        if char.islower():
            check[0]=1
        #如果是大写
        if char.isupper():
            check[1]=1
        #如果是数字
        if char.isdigit():
            check[2]=1
        #如果是其他字符
        if not(char.isalpha()|char.isdigit()|char.isspace()):
            check[3]=1
    #当列表中的四个元素之和小于4说明不符合
    if sum(check)<4:
        return False
    else:
        return True
    #检查是否有四位以上是重复的
def check_rep(pwd):
        n=len(pwd)
        for i in range (n-4):
            str1=pwd[i:i+4]
            str2=pwd[i+4::]
            if str1 in str2:
                return False
        return True
if __name__ == '__main__':
    msg='''
    请设置密码:
    密码必须由大写字母、小写字母、符号、数字组成,并且不能少于8位
    '''
    print(msg)
    while True:
        pwd=input('请输入密码')
    #退出程序
        if pwd=='q':
            print("退出")
            break
    #查询位数
        vcheck1=check_len(pwd)
        if not vcheck1:
            print("位数不对")
            continue
    #查询符号组成
        vcheck2=check(pwd)
        if not vcheck2:
            print("密码组成必须是大写字母+小写字母+数字+符号")
            continue
    #查询有无重复
        vcheck3=check_rep(pwd)
        if not vcheck3:
            print("密码有重复字符串")
            continue
        print("密码格式正确")
        break

3.3 运行结果

在输入的时候要严格按照密码中含有大写字母、小写字母、符号、数字,并且不能少于8位的条件进行输入,否则就会报错。

4、总结

通过这一则代码,展示了在注册账号时候为什么要求输入多种格式的密码,展示了密码检验的底层逻辑。

相关推荐
Theodore_10223 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou3 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书3 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
----云烟----5 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024065 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
小二·5 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic5 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it5 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
武子康5 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神6 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式