Python编程实例04——简单密码校验

系列目录

上一篇:Python编程实例03——对英文文本进行分词



前言

关键词:密码校验


一、编程要点

密码校验主要用到判断字符性质的函数,主要如下:

  • vbool=str.isdigit()函数判断字符串或字符是否是数字,其中str是字符串或字符,返回vbool是布尔型变量,如果str是数字返回True,反之则返回False。
  • vbool=str.isalpha()函数判断字符串或字符是否是字母。
  • vbool=str.isspace()函数判断字符是否是空格。
  • vbool=str.isupper()函数判断字符串或字符是否是大写字母。
  • vbool=str.islower()函数判断字符串或字符是否是小写字母。

二、代码实现

#判断字符串的长度
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
        #判断是否包含其他符号(除字母or数字or空格)
        if not(char.isalpha() | char.isdigit()| char.isspace()):
            check[3]=1
    #sum不全为4,说明不符合,全为4则符合
    if sum(check) < 4:
        return False
    else:
        return True

#判断是否重复4位
def check_rep(pwd):
    n = len(pwd)
    for i in range(n-4):
        #str1,表示任取从i起的4个字符
        str1 = pwd[i:i+4]
        #str2,表示对从i+1后的字符串对比
        str2 = pwd[i+1::]
        if str1 in str2:
            return False
    return True

#主函数
if __name__ == '__main__':
    msg='''
    1、密码长度不小于8位
    2、密码必须由大小写字母、数字、其他符号组成
    3、密码不能重复超过4位
    (按q退出)
    '''
    print(msg)
    while True:
        pwd = input('请输入密码:')
        if pwd == 'q':
            print('退出程序。。。')
            break
        vcheck1 = check_len(pwd)
        if not vcheck1:
            print("密码长度不够8位,请重新输入!")
            continue
        vcheck2 = check(pwd)
        if not vcheck2:
            print("密码组成不符合!请重新录入")
            continue
        vcheck3 = check_rep(pwd)
        if not vcheck3:
            print("密码包含4位以上的重复,请查看并重新输入")
            continue
        print("密码正确")
        break

运行效果:

1、密码长度不小于8位
2、密码必须由大小写字母、数字、其他符号组成
3、密码不能重复超过4位
(按q退出)
请输入密码:1#tT123
密码长度不够8位,请重新输入!
请输入密码:test11111T#
密码包含4位以上的重复,请查看并重新输入
请输入密码:test#4568
密码组成不符合!请重新录入
请输入密码:tTest#1238
密码正确


总结

还记得以前学习C语言的时候,这个也是基础入门案例,今天通过python又实现了一次,算是留个纪念吧。

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值