python字符串与正则表达式的应用上机

一、实验目的和要求

目的:

①了解字符串编码规则
②掌握字符串索引
③掌握字符串操作
④掌握正则表达式

二、 实验数据记录、处理及结果分析

(1)上课练习题,检查字符串是否合法,长度8-16位,支持大小写

当输入内容为 Helloworld#123764356788 时:
在这里插入图片描述
当输入内容为 Helloworld#6788 时:
在这里插入图片描述
程序段为:

import re

def checklen(pwd):
    return len(pwd)>=8 and len(pwd)<=16
def checkContainUpper(pwd):
    pattern = re.compile('[A-Z]+')
    match = pattern.findall(pwd)
    if match:
        return True
    else:
        return False
def checkContainNum(pwd):
    pattern = re.compile('[0-9]+')
    match = pattern.findall(pwd)
    if match:
        return True
    else:
        return False
def checkContainLower(pwd):
    pattern = re.compile('[a-z]+')
    match = pattern.findall(pwd)
    if match:
        return True
    else:
       return False
def checkSymbol(pwd):
    pattern = re.compile('([^a-z0-9A-Z])+')
    match = pattern.findall(pwd)
    if match:
        return True
    else:
        return False
def checkPassword(pwd):
    #判断密码长度是否合法
    lenOK=checklen(pwd)

    #判断是否包含大写字母
    upperOK=checkContainUpper(pwd)

    #判断是否包含小写字母
    lowerOK=checkContainLower(pwd)

    #判断是否包含数字
    numOK=checkContainNum(pwd)

    #判断是否包含符号
    symbolOK=checkSymbol(pwd)

    print(lenOK)
    print(upperOK)
    print(lowerOK)
    print(numOK)
    print(symbolOK)
    return (lenOK and upperOK and lowerOK and numOK and symbolOK)

def main():
    if checkPassword('Helloworld#6788'):#输入内容
        print('检测通过')
    else:
        print('检测未通过')


if __name__ == '__main__':
    main()

(2)写出程序的运行结果。

c='123'+'456'+'789'
c+=c[-3:]*2
print(c)

在这里插入图片描述
(3)下面是打印图实验6-1所示的金字塔图案的程序,请补充程序。
在这里插入图片描述

for i in range(1,6):
    print(' '*(15-i),end='')
    print('*'*(2*i-1))

在这里插入图片描述
(4)利用正则表达式判断字符串是否只有小写字母或数字。

import re
s='1234hjijsbdvysic'
if re.match('^[0-9a-z]+$',s):
    print('符合要求')
else:
    print('不符合要求')

当s等于 12345abc 时:
在这里插入图片描述
当s等于 1234hjijsbdvysic 时:
在这里插入图片描述
因为并没有对字符串设定长度,所以依然是符合要求。

三、讨论、心得

报错:
在这里插入图片描述
修改后正确。

心得体会:

compile是一个语法错误的正则表达式的时候,其实可以得到详细的错误提示。Python中re模块的DEBUG flag可以帮助我们快速检查自己所写的正则中的错误。


版权声明:本文为weixin_44513969原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。