《Python语言程序设计》王恺 王志 机械工业出版社 第六章 字符串 课后习题答案

6.5 课后习题
(1)Python 中,创建字符串时,可以使用单引号、双引号和三引号

(2)Python 中,使用字符串的 split 方法可以按照指定的分隔符对字符串进行切割,返回由切割结果组成的列表

(3)可以利用运算符“+”连接两个字符串,也可以 join 使用方法将序列中的元素以指定的字符连接成一个新的字符串

(4)Python 中对正则表达式中的普通字符需要做精确匹配,而特殊字符指定的匹配模式则对应了用于模糊匹配的规则

(5)Python 中正则表达式的特殊序列是由 \ 和一个字符构成

(6)使用 Python提供的Re模块,可以实现基于正则表达式的模糊匹配

(7)compile函数用于将一个字符串形式的正则表达式编译成一个正则表达式对象,供match、search 以及其他函数使用

(8)re模块中的match函数用于对字符串开头的若干字符进行正则表达式的匹配。匹配成功,返回一个Match对象;匹配失败,返回None

(9)re模块中的 finditer函数与re.findall函数功能都是用于在字符串中找到所有与正则表达式匹配的子串,区别在于re.findall 函数返回列表形式的结果,而 re.finditer返回迭代器形式的结果。

(10)re模块中的split函数用于将字符串按与正则表达式匹配的子串分割

(11)已知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.程序报错

(12)下列说法错误的是(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会检索到所有的子串

(13)下列关于replace方法str.replace(old, new[,max])的说法错误的是(C)

          A.使用字符串中的replace方法可以将字符串中的指定子串替换成其他内容

          B.str是要做替换操作的字符串,old和new分别是要替换的子串和替换成的字符串

          C. max是最多替换的子串数量,如果不指定max参数,则只替换第一个满足条件的子串

          D. replace方法返回替换后的字符串

(14)print(len(”中国\"china" "))的输出结果是(B)

          A.7              B.8              C.9              D.10

(15)下列匹配模式叙述错误的是(D)

         A.“^”用于匹配字符串开头的若干字符                B.“*”用于匹配前一个模式0次或多次

         C.“?”用于匹配前一个模式0次或1次                   D.A|B表示同时匹配模式A和模式B

(16)关于正则表达式特殊序列叙述错误的是(C)

         A.A匹配字符串开头的若干字符,功能同“^”

         B.d 匹配任一数字字符,等价于[0-9]

         C.\S匹配任一空白字符

         D.\D与\d作用相反,匹配任一非数字字符,等价于[^0-9]

(17)写出下面程序的运行结果

print("ad" > "abcd")
print("AD" > "abcd")
print("AD" > "ADC")
print("tianjin" > "beijing")
print("天津" > "北京")
 
 
#输出结果
True
False
False
True
True
(18)写出下面程序的运行结果

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.']
(19)写出下面程序的运行结果

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
(20)写出下面程序的运行结果

n,f = 34,56.78
print("%d,%o,%x"%(n,n,n))
print("%f,%e"%(f,f))
r = 5
s = 3.14*r*r
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
(21)写出下面程序的运行结果

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)
 
 
#输出结果
<re.Match object; span=(0, 7), match='Student'>
None
<re.Match object; span=(7, 14), match='student'>
<re.Match object; span=(7, 14), match='student'>
None
(22)写出下面程序的运行结果

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', '计算机')
(23)写出下面程序的运行结果

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)
(24)下面的程序从键盘输入一个字符串,然后将其中的大写字母转换为小写字母,小写字母转换为大写字母,其他字符不变,请将程序填写完整

str = input("请输入一个字符串")
ns=''
for c in str:
    if c>='A' and c<='Z':
        ns+=c.lower()
    elif c>='a'and c<='z':
        ns+=c.upper()
    else:
        ns+=c
print(ns)
 

猜你喜欢

转载自blog.csdn.net/weixin_49647262/article/details/122028318
今日推荐