第六章 字符串

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)

码字不易,能否给个不要钱的,关注我,带你发现更多知识!

《Python语言程序设计》王恺 机械工业出版社 第六章课后习题答案相关推荐

  1. 《Python语言程序设计》王恺 机械工业出版社 第五章课后习题答案

    第五章 序列.集合和字典 5.8 课后习题 (1)Python 中,通过列表中的 index 方法可以根据指定值查找第一个匹配的列表元素 的位置. (2)Python 中,通过列表中的 insert ...

  2. 《Python语言程序设计》王恺 机械工业出版社 第四章课后习题答案

    第四章 面向对象 4.5 课后习题 (1)类和对象的关系即数据类型与变量的关系,类规定了可以用于存储什么数据,而对象用于实际存储数据,每个对象可存储不同的数据 (2)类中包含属性和方法.属性对应一个类 ...

  3. 《Python语言程序设计》王恺 机械工业出版社 第三章课后习题答案

    ​​第三章   函数 3.7 课后习题 (1)在Python语言中,使用函数分为两个步骤:定义函数和调用函数 (2)在Python语言中,函数定义需要使用def关键字 (3)形参是在定义函数时函数后面 ...

  4. 《Python语言程序设计》王恺 机械工业出版社 第七章课后习题答案

    第七章 I/O编程与异常 7.7 课后习题 (1)利用 os 模块查看当前系统的名字,应当使用 os.name . (2)利用 os 模块获取当前系统平台路径的分隔符,应当使用 os.sep . (3 ...

  5. 计算机科学导论+刘艺+pdf,计算机科学导论(机械工业出版社)刘艺 瞿高峰 习题答案.doc...

    计算机科学导论(机械工业出版社)刘艺 瞿高峰 习题答案.doc 以下答案为查阅多方资料做的,仅供参考. 第一章 绪论 1. 和计算机相关的问题. 2. 冯.诺依曼模型. 3. 第一点:尽管这个模型能够 ...

  6. 《Python语言程序设计》王恺 机械工业出版社 第二章课后习题答案

    第二章 Python的基础语法 2.7 课后习题 (1)变量是指在程序运行讨程中值可以发生改变的量 (2)已知s="Python语言程序设计",则print(s[2:4])的输出结 ...

  7. C++语言程序设计第五版 - 郑莉(第九章课后习题)

    第9章  群体类和群体数据的组织 9-1 编写程序提示用户输入一个班级中的学生人数 n,再依次提示用户输入 n 个人在课程 A 中的考试成绩,然后计算出平均成绩,显示出来.请使用本书第 9 章中的数组 ...

  8. C++语言程序设计第五版 - 郑莉(第二章课后习题)

    第2章  C++简单程序设计 2-25 编写一个完整的程序,实现功能:向用户提问"现在正在下雨吗?",提示用户输入Y 或N.若输入为Y,显示"现在正在下雨.": ...

  9. 《Python语言程序设计》王恺 机械工业出版社 第一章课后习题答案

    第一章 初识Python 1.6 课后习题 (1)高级语言翻译为机器语言的方式有两种:一种是编译,一种是解释.Python属于解释型语言 (2)Python程序支持两种运行方式:交互式和脚本式 (3) ...

最新文章

  1. Java: 复制文件最快、高效率的方法
  2. clipse3.2/3.3中指定第三方包(JAR)和类路径(CLASSPATH)的几个方法(转做笔记)
  3. python真正实现多线程_python多线程实现
  4. MyEclipse:Available memory is low解决办法
  5. Redis 主从复制(replication)
  6. Ajax — 新闻列表
  7. 火热报名|5月15日线下沙龙上海站——“大促活动场景下的质量保障”主题
  8. Python学习之路——Python基础之运算符
  9. mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查
  10. MySQL内核月报 2014.10-MySQL· 捉虫动态·binlog重放失败
  11. git - 1.基础
  12. 频繁模式挖掘 (Frequent pattern mining):01 概念篇 (附例题)
  13. R语言关联分析之啤酒和尿布
  14. php md5加密数组,php md5加密
  15. 大衣哥在《火火的情怀》后,和孟文豪张成军推出《新时代的农民》
  16. 1646 获取生成数组中的最大值(模拟)
  17. 谷歌中一些十分有趣的特效现象
  18. php 仿面包网 源码 飞飞cms_2020最新2017最新仿面包网模板 电影网站源码 带下载功能mianbao9源码...
  19. Unity+EasyAR4.1.0.811包,实现手机扫描图片显示模型(安卓手机)
  20. manjaro i3安装配置全记录

热门文章

  1. 黑白图像自动上色(Colorization)
  2. 再次携号转网_携号转网能“转”几次,间隔时间是多长,具体有哪些条件?望周知...
  3. Linux 运行python命令
  4. Framework3.5安装(Windows8.1)
  5. c++实现图像旋转任意角度
  6. 模拟天地飞7接收机的无人机自主飞行,基于51单片机实现
  7. java语言发展史,虚拟机的安装与配置
  8. 解决添加内存条后可用容量不变
  9. 公开课计算机入门段然,《小动物过冬》公开课课件.pdf
  10. iOS-设置新建文件时的默认前缀