一、实验目的和要求
目的:
①了解字符串编码规则
②掌握字符串索引
③掌握字符串操作
④掌握正则表达式
二、 实验数据记录、处理及结果分析
(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版权协议,转载请附上原文出处链接和本声明。