1.理解转义字符、ASCII、UTF-8的基本概念与应用; 2.掌握字符串常用方法。 3.掌握正则表达式基本语法; 4.理解正则表达式扩展语法; 5.掌握正则表达式模块re的常用函数;
通过编写函数实现下述各题。
1.输入一字符串,各个子串之间按空白字符隔开,分别显式其中最长、最短子串,以及最大、最小字符。
2.输入单个字符,判断并显示该字符是否为大写英文字母、小写英文字母、非英文文字字符、空格、数字或者其它字符。
3.输入一字符串,各个子串之间按空白字符隔开,要求将其中的纯英文子串的大写字母改为小写,含数字的子串中的阿拉伯数字改写为对应的汉字,并且将所有空白字符改写为'%'。
4.字符串加密与解密,输入一字符串,按如下规则加密,将原文中每个字符转换为对应的ascii码后,再将该ascii码加上一100至200 之间的整数得到的数值即为该字符对应的密文;解密即为上述过程的逆运算。将该字符串加密后再解密,并且显示原文、密文、解密后文本。
5.输入一字符串,要求统计出该字符串中出现频率最高的字符。
6.令字符串 s='马丽于2022-4-29 10:10刊发了一首诗《Listen to me》,诗词的大意是:\n Mama you taught me to do the right things,\n So now you have to let your baby fly.\n You've given me everything that I will need,\n To make it through this crazy thing called life,\n Thank you Mum!' ,通过编写函数实现下述各题功能。
1 应用正则表达式判断该字符串是否包含0~9的数字和大小写英文字母。
2 根据正则表达式使用中文逗号、中文句号、英文逗号、英文点号、英文感叹号、英文换行符号将该字符串分割成多个子串。
3 应用正则表达式提取该字符串中的日期时间字符串。
4 应用正则表达式提取该字符串中的诗词名称。
5 应用正则表达式提取该字符串中的姓名
(在此部分包括问题和解决办法、心得体会;列出保持缩进格式的程序代码及运行结果截图,请注意保持格式统一,截图清晰,大小合适) 1.输入一字符串,各个子串之间按空白字符隔开,分别显式其中最长、最短子串,以及最大、最小字符。
# 程序名:实验六
# 功能:输入一字符串,各个子串之间按空白字符隔开,分别显式其中最长、最短子串,以及最大、最小字符。
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
s="asdf sdfsdf cfxgj"
a=s.split()
smax=""
smin="ZZZZZZZZZZZ"
for i in a:
if(len(i)>len(smax)):
smax= i
if(len(i)<len(smin)):
smin= i
Max = []
Min = []
for i in range(len(a)):
for j in a[i]:
if ord(j) == int_s[len(int_s)-1]:
Max.append(j)
for i in range(len(a)):
for j in a[i]:
if ord(j) == int_s[0]:
Min.append(j)
print("最长的子串:",smax,"最短的子串:",smin,"最大的字符:",Max,"最小的字符:",Min)
copy
2.输入单个字符,判断并显示该字符是否为大写英文字母、小写英文字母、非英文文字字符、空格、数字或者其它字符。
# 程序名:实验六
# 功能:判断并显示该字符是否为大写英文字母、小写英文字母、非英文文字字符、空格、数字或者其它字符。
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
c = input("请输入单个字符:")
if c.isalpha():
if c.isupper():
print("字符为大写英文字母")
else:
print("字符为小写英文字符")
elif c.isdigit():
print("字符为数字")
elif c.isspace():
print("字符为空字符")
else:
print("字符为其他字符")
copy
3.输入一字符串,各个子串之间按空白字符隔开,要求将 其中的纯英文子串的大写字母改为小写,含数字的子串中的阿拉伯数字改写为对应的汉字,并且将所有空白字符改写为'%'。
# 程序名:实验六
# 功能:各个子串之间按空白字符隔开,要求将
其中的纯英文子串的大写字母改为小写,含数字的子串中的阿拉伯数字改写为对应的汉字,并且将所有空白字符改写为'%'。
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
import string
print("请输入字符串:")
str=input()
str1=str.split()
table=''.maketrans('0123456789','零一二三四五六七八九')
for i in range(len(str1)):
str1[i]=str1[i].translate(table)
for j in str1:
if j not in string.ascii_letters:
str1[i] = str1[i].lower()
else:
continue
sep='%'
str2=sep.join(str1)
print(str2)
copy
4.字符串加密与解密,输入一字符串,按如下规则加密,将原文中每个字符转换为对应的ascii码后,再将该ascii码加上一100至200之间的整数得到的数值即为该字符对应的密文;解密即为上述过程的逆运算。将该字符串加密后再解密,并且显示原文、密文、解密后文本。
# 程序名:实验六
# 功能:字符串加密与解密
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
from random import randint
import string
sa=list()
seu=list()
se=list()
print("请输入需要加密的文字:")
s=input()
for i in s:
sa.append(ord(i))
key=randint(100,200)
for i in (range(len(sa))):
sa[i]=sa[i]+key
print("密文为:",sa)
for i in (range(len(sa))):
seu.append(sa[i]-key)
for i in seu:
se.append(chr(i))
print("解密后:",se)
copy
5.输入一字符串,要求统计出该字符串中出现频率最高的字符。
# 程序名:实验六
# 功能:统计出该字符串中出现频率最高的字符
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
import string
s=input()
sd=dict()
mmax=0
ss=str()
for i in s:
sd[i]=sd.get(i,0)+1
mmax=max(sd.values())
for item in sd.items():
if(item[1]==mmax):
ss=item[0]
print("出现次数最多的是:",ss,"出现次数为:",mmax)
break
copy
6.令字符串 s='马丽于2022-4-29 10:10刊发了一首诗《Listen to me》,诗词的大意是:\n Mama you taught me to do the right things,\n So now you have to let your baby fly.\n You've given me everything that I will need,\n To make it through this crazy thing called life,\n Thank you Mum!' ,通过编写函数实现下述各题功能。
1 应用正则表达式判断该字符串是否包含0~9的数字和大小写英文字母。
# 程序名:实验六
# 功能:应用正则表达式判断该字符串是否包含0~9的数字和大小写英文字母。
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
s="马丽于2022-4-29 10:10刊发了一首诗《Listen to me》,诗词的大意是:\n Mama you taught me to do the right things,\n So now you have to let your baby fly.\n You've given me everything that I will need,\n To make it through this crazy thing called life,\n Thank you Mum!"
import re
ran= r'[0-9,a-z,A-Z]'
match = re.search(ran, s)
if match:
print("包含")
else:
print("不包含")
copy

2 根据正则表达式使用中文逗号、中文句号、英文逗号、英文点号、英文感叹号、英文换行符号将该字符串分割成多个子串。
# 程序名:实验六
# 功能:正则表达式使用中文逗号、中文句号、英文逗号、英文点号、英文感叹号、英文换行符号将该字符串分割成多个子串
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
s="马丽于2022-4-29 10:10刊发了一首诗《Listen to me》,诗词的大意是:\n Mama you taught me to do the right things,\n So now you have to let your baby fly.\n You've given me everything that I will need,\n To make it through this crazy thing called life,\n Thank you Mum!"
import re
sepp= r'[,。,.\n!]'
result = re.split(sepp, s)
for r in result:
print(r)
copy
3 应用正则表达式提取该字符串中的日期时间字符串。
# 程序名:实验六
# 功能:应用正则表达式提取该字符串中的日期时间字符串。
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
s="马丽于2022-4-29 10:10刊发了一首诗《Listen to me》,诗词的大意是:\n Mama you taught me to do the right things,\n So now you have to let your baby fly.\n You've given me everything that I will need,\n To make it through this crazy thing called life,\n Thank you Mum!"
import re
#提取日期时间字符串。
time=re.compile(r'2.*0')
print(time.findall(s))
copy
4 应用正则表达式提取该字符串中的诗词名称。
# 程序名:实验六
# 功能:应用正则表达式提取该字符串中的诗词名称
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
s="马丽于2022-4-29 10:10刊发了一首诗《Listen to me》,诗词的大意是:\n Mama you taught me to do the right things,\n So now you have to let your baby fly.\n You've given me everything that I will need,\n To make it through this crazy thing called life,\n Thank you Mum!"
import re
#提取日期时间字符串。
time=re.compile(r'《(.+?)》')
print("诗歌名为:",time.findall(s))
copy
5 应用正则表达式提取该字符串中的姓名
# 程序名:实验六
# 功能:应用正则表达式提取该字符串中的姓名
# 作者:杨宇豪
# 学号:20222501224
# 日期:2023/3/29
s="马丽于2022-4-29 10:10刊发了一首诗《Listen to me》,诗词的大意是:\n Mama you taught me to do the right things,\n So now you have to let your baby fly.\n You've given me everything that I will need,\n To make it through this crazy thing called life,\n Thank you Mum!"
import re
#提取日期时间字符串。
e= r'([\u4e00-\u9fa5]{2})'
match = re.search(e, s)
print("作者:",match.group(1))
copy
2.问题:有时候知道应该使用什么样的字符串,但是却忘了该用什么字符串来表示 解决办法:多加练习,多加巩固 3. 问题:对于字典的操作存在问题。
1要注意输入法情况,中文输入法会导致错误 2. .要注意注释的标注,这样可以让代码更容易理解 。 3.对于不知道,不了解的问题,要多询问和查询,书本和网站和老师
学习时间 0分钟
操作时间 0分钟
按键次数 0次
实验次数 6次
报告字数 7236字
是否完成 未完成