点个?吧,秋梨膏!!!!!,建议收藏一波
第6章 字符串
Python中,创建字符串时,可以使用单引号、双引号和三引号。
Python中,使用字符串的split方法可以按照指定的分隔符对字符串进行切割,返回由切割结果组成的列表。
可以利用运算符+连接两个字符串,也可以使用join方法将序列中的元素以指定的字符连接成一个新的字符串。
Python中正则表达式中的普通字符需要做精确匹配,而特殊字符指定的匹配模式则对应了用于模糊 匹配的规则。
Python中正则表达式的特殊序列是由 \ 和一个字符构成。
使用Python提供的re模块,可以实现基于正则表达式的模糊匹配。
compile函数用于将一个字符串形式的正则表达式编译成一个正则表达式对象,供 match、search以及其他一些函数使用。
re模块中的match函数用于对字符串开头的若干字符进行正则表达式的匹配。匹配成功,返回一个Match对象;匹配失败,返回None 。
re模块中的finditer函数与re.findall函数功能都是用于在字符串中找到所有与正则表达式匹配的子串,区别在于re.findall函数返回 列表形式的结果,而re.finditer返回 迭代器形式的结果。
re模块中的split函数用于将字符串按与正则表达式匹配的子串分割。
已知s1="I “am a student.”,s2='I ‘am a student’,则print(s1,s2)的输出结果为(D)
A. I 'am a student. I 'am a student
B. I "am a student. I 'am a student
C. I "am a student. I 'am a student
D. 程序报错下列说法错误的是(D)
A. find方法是在指定检索范围中按照从左至右的顺序检索,找到子串第一次出现的位置
B. rfind方法在指定检索范围中按照从右至左的顺序检索,找到子串第一次出现的位置
C. index与find作用相同,rindex与rfind作用相同,只是find和rfind在检索不到字符串时返回-1,而index和rindex会引发ValueError异常
D. index与find作用相同,rindex与rfind作用相同,只是find和rfind找到一个就返回,而index和rindex会检索到所有的子串下列关于replace方法str.replace(old, new[, max])的说法错误的是(C)
A. 使用字符串中的replace方法可以将字符串中的指定子串替换成其他内容
B. str是要做替换操作的字符串,old和new分别是要替换的子串和替换成的字符串
C. max是最多替换的子串数量,如果不指定max参数则只替换第一个满足条件的子串
D. replace方法返回替换后的字符串print(len(“中国"china”))的输出结果是(B)
A. 7
B. 8
C. 9
D. 10下列匹配模式叙述错误的是(D)
A. ^用于匹配字符串开头的若干字符
B. *用于匹配前一个模式0次或多次
C. ?用于匹配前一个模式0次或1次
D. A|B表示同时匹配模式A和模式B关于正则表达式特殊序列叙述错误的是(C)
A. \A匹配字符串开头的若干字符,功能同^
B. \d匹配任一数字字符,等价于[0-9]
C. \S匹配任一空白字符
D. \D与\d作用相反,匹配任一非数字字符,等价于[^0-9]写出下面程序的运行结果。
print(“ad”>“abcd”)
print(“AD”>“abcd”)
print(“AD”>“ADC”)
print(“tianjin”>“beijing”)
print(“天津”>“北京”)
答:运行结果为:
True
False
False
True
True写出下面程序的运行结果。
s1=“I am a student.”
s2=“C++90分Python88分Java85分”
s3=“I am a student.\nI like programming.\n”
print(s1.split())
print(s2.split(“分”))
print(s2.split(“分”,2))
print(s3.splitlines())
答:运行结果为:
[‘I’, ‘am’, ‘a’, ‘student.’]
[‘C++90’, ‘Python88’, ‘Java85’, ‘’]
[‘C++90’, ‘Python88’, ‘Java85分’]
[‘I am a student.’, ‘I like programming.’]写出下面程序的运行结果。
str=" a b c "
print(“123”+str.strip()+“456”)
print(“123”+str.lstrip()+“456”)
print(“123”+str.rstrip()+“456”)
答:运行结果为:
123a b c456
123a b c 456
123 a b c456写出下面程序的运行结果。
n,f=34,56.78
print("%d,%o,%x"%(n,n,n))
print("%f,%e"%(f,f))
r=5
s=3.14rr
s1=“半径为{0}的圆面积为{1}”
s2=“半径为{radius}的圆面积为{area}”
print(s1.format(r,s))
print(s2.format(area=s,radius=r))
答:运行结果为:
34,42,22
56.780000,5.678000e+01
半径为5的圆面积为78.5
半径为5的圆面积为78.5写出下面程序的运行结果。
import re
pattern=re.compile(r’Student’, re.I) #生成正则表达式对象
r1=pattern.match(‘Students study programming’)
r2=pattern.match(‘I am a student!’,3)
r3=pattern.match(‘I am a student!’,7)
r4=re.search(r’Student’,‘I am a student’,re.I)
r5=re.match(r’Student’,‘I am a student’,re.I)
print(r1)
print(r2)
print(r3)
print(r4)
print(r5)
答:运行结果为:
<_sre.SRE_Match object; span=(0, 7), match=‘Student’>
None
<_sre.SRE_Match object; span=(7, 14), match=‘student’>
<_sre.SRE_Match object; span=(7, 14), match=‘student’>
None写出下面程序的运行结果。
import re
str=’’‘sno:#1810101#,name:#李晓明#,age:#19#,major:#计算机#
sno:#1810102#,name:#马红#,age:#20#,major:#数学#’’’
rlt=re.search(r’sno:#([\s\S]?)#[\s\S]?major:#([\s\S]*?)#’, str, re.I)
if rlt: #判断是否有匹配结果
print(‘匹配到的整个字符串:’, rlt.group())
print(‘sno:%s, startpos:%d, endpos:%d’%(rlt.group(1), rlt.start(1), rlt.end(1)))
print(‘major:%s, startpos:%d, endpos:%d’%(rlt.group(2), rlt.start(2), rlt.end(2)))
print(‘所有分组匹配结果:’, rlt.groups())
else:
print(‘未找到匹配信息’)
答:运行结果为:
匹配到的整个字符串: sno:#1810101#,name:#李晓明#,age:#19#,major:#计算机#
sno:1810101, startpos:5, endpos:12
major:计算机, startpos:41, endpos:44
所有分组匹配结果: (‘1810101’, ‘计算机’)写出下面程序的运行结果。
import re
html=’’’%abc%%def%python(ghi)’’’
content=re.sub(r’%[\s\S]%’, ‘&’, html)
content=content.strip()
print('替换之后的内容为: ‘, content)
content2=re.subn(r’%[\s\S]%’, ‘&’, html)
print('替换之后的内容及替换次数为: ', content2)
答:运行结果为:
替换之后的内容为: &python(ghi)
替换之后的内容及替换次数为: (’&python(ghi)’, 1)下面程序从键盘输入一个字符串,然后将其中的大写字母转换为小写字母,小写字母转换为大写字母,其他字符不变,请将程序填写完整。
str = input("请输入一个字符串")
ns=''
for c in str:
if c>='A' and c<='Z':
ns+=c.lower()
elif c>='a'and c<='z': 或 'a'<=c<='z':
ns+=c.upper()
else:
ns+=c或ns=ns+c
print(ns)
点个?吧,秋梨膏!!!!!,建议收藏一波