Python大学教程(第2版) 第7章 字符串与正则表达式 练习题.docx
第7章字符串与正则表达式
一选择题
下列哪个格式符代表有符号的八进制数()
A.%xB.%cC.%oD.%e
2.下列哪个函数可以返回在字符串中找到的第一个子串的位置()
A.str.rfindB.str.findC.str.countD.str.ljust
3.最早通用的编码系统为()
A.Unicode
B.GB2312
C.UTF-8
D.ASCII
4.以下数量限定词表示匹配前面的子表达式一次或多次的是()
A.*
B.+
C.?
D.!
5.以下字符串作为pile()函数的参数传入时,最终可以匹配’\’的是()
A.\
B.\\
C.\\\\
D.以上均不对
二判断题
str.isalnum()的功能是如果字符串中的所有字符都是字母且串非空,则该函数将返回True,否则返回False。()
在Python3.x中,所有字符串均以Unicode方式存储,因此可以直接创建中文字符串。()
UTF-8编码每个字符被编码为4字节()
使用”\w+\s\w+”可以匹配”HelloWorld”()
使用已经编译好的正则表达式对象进行匹配会比字符串匹配快()
三填空题
1.定义mystr=HelloWorld,则mystr[0:5]的值为字符串______。
2.定义str2=**5,则str2的值为字符串______。
3.调用-.join([How,Are,You])将返回字符串______。
4.调用pile(pattern)将返回一个”______”
5.调用re.match(pattern,string)如果匹配不成功,应该返回“______”
四简答题
1.字符串支持哪些基本操作?试举例说明。
2.字符串支持的%操作符有何意义?
3.试简述字符编码与字符的关系。
4.正则表达式的主要用途
5.可选参数flags有什么
答案
一选择题
C2.B3.D4.B5.C
二判断题
×2.√3.×4.√5.√
三填空题
Hello2.*****3.How-Are-You4.正则表达式对象5.None
四简答题
1.①下标访问:字符串可以使用下标来访问该位置的单个字符。例如,定义mystr=python,则mystr[0]的值为字符串p。但是使用下标只能进行读取操作,而无法进行写入操作。
②切片操作:使用切片操作可以按位置提取出字符串的某个子串。例如,定义mystr=HelloWorld,则mystr[0:5]的值为字符串Hello。
③字符串拼接与复制:使用+和*可以实现字符串的拼接和复制。例如,定义str1=Hello++World,str2=**5,则str1的值为字符串HelloWorld,str2的值为字符串*****。另外,使用增强型赋值运算符+=和*=也是可以的。
④in/notin运算符:使用in/notin运算符可以判断一个字符串是否为另一个字符串的子串。例如,表达式HeinHello将返回True。
⑤比较运算符:比较运算符可以用来对字符串进行比较。字符串的比较规则是字典序,即从两个字符串的第一个字符开始,依次比较每个对应位置字符的ASCII码值,直到出现不一样的两个字符或者两个字符串所有字符都比较完毕为止。例如,表达式JaneJake将返回True,表达式hello==Hello将返回False。
⑥for循环遍历字符串:字符串也是可迭代对象,因此可以使用for循环来顺序遍历字符串中的每个字符。例如,执行下面的语句将依次打印字符串的所有字符:
forchinmystr:
print(ch,end=)
上面代码执行的结果与直接执行语句print(mystr,end=)相同。
2.字符串有一个独特的内置操作:%操作符(也被称为字符串格式化操作符)。使用这一操作符可以创建格式化的字符串,其语法格式类似于“format%values”,其中,format是带有格式符的模板字符串,values是若干个值,这一操作会将format串中的格式符替换为values中的值。
3.字符编码是一种将字符映射为二进制数字的方式,使得计算机能够存储和处理文本数据。每个字符都对应着一个唯一的编码值。要将字符按照一定规则对应为一位二进制数以存储在计算机中,这个过程称为编码;将存储在计算机中的二进制数转换成所对应的的字符以显示出来,这个过程称为解码。
4.正则表达式是一种字符串匹配的模式