【python】《Python编程快速上手+让繁琐工作自动化》每章实践项目答案(第七章)

本文介绍了一个使用正则表达式检查密码强度的Python程序。该程序确保密码长度不少于8个字符,且包含大写和小写字母及至少一个数字。此外,还提供了一个自定义strip()函数的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

强口令检测
写一个函数,它使用正则表达式,确保传入的口令字符串是强口令。强口令的
定义是:长度不少于 8 个字符,同时包含大写和小写字符,至少有一位数字。你可
能需要用多个正则表达式来测试该字符串,以保证它的强度 

# -*- coding:utf-8 -*-
import re

class Check_passwd():

    def __init__(self,passwd):
        self.passwd = passwd

    def check_length(self):
        """
        密码长度不少于8个字符
        :return:
        """
        if len(self.passwd) >= 8:
            print("密码长度满足要求")
            return 1
        else:
            print("密码长度不少于8位,请重新设置")
            return 0

    def check_number(self):
        """
        密码至少包含一位数字
        :return:
        """
        re_number = re.compile(r'[\d]')
        if re_number.findall(self.passwd):
            print("密码中含有数字满足要求")
            return 1
        else:
            print("密码中至少包含一位数字,请重新设置")
            return 0

    def check_letter(self):
        """
        密码同时包含大小写字符
        :return:
        """
        re_upper = re.compile(r'[A-Z]')
        re_lower = re.compile(r'[a-z]')
        if re_lower.findall(self.passwd) and re_upper.findall(self.passwd):
            print("密码含有大小写字母满足要求")
            return 1
        else:
            print("密码中必须同时含有大小写字母,请重新设置")
            return 0

while True:
    passwd  = input("请设置密码:")
    if Check_passwd(passwd).check_length() and Check_passwd(passwd).check_letter() and Check_passwd(passwd).check_number():
        break
    else:
        continue

运行结果:

 

 

 

# -*- coding:utf-8 -*-
# 写一个函数,它接受一个字符串,做的事情和 strip()字符串方法一样。如果只
# 传入了要去除的字符串,没有其他参数,那么就从该字符串首尾去除空白字符。否
# 则,函数第二个参数指定的字符将从该字符串中去除。

import re

def re_strip(strings, way = ' '):
    """
    实现和strip()一样的功能
    :return:
    """
    if way == ' ':
        re_space = re.compile(r'^\s+|\s+$')
        print(re_space.sub('',strings))
        return re_space.sub('',strings)
    else:
        re_char = re.compile(way)
        print(re_char.sub('',strings))
        return re_char.sub('',strings)

re_strip(' aa 1231112 2223','2')
re_strip(' 123')
re_strip('@!@345 ')
re_strip('   111     ')

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值