《Python语言程序设计》刘卫国主编,中国工信出版集团,电子工业出版社

习题5

一、选择题

1.访问字符串中的部分字符的操作称为(      )。A

A.分片           B.合并           C.索引            D.赋值

2.下列关于字符串的描述错误的是(      )。B

A.字符串s的首字符是s[0]

B.在字符串中,同一个字母的大小是等价的。

C.字符串中的字符都是以某种二进制编码的方式进行存储和处理的

D.字符串也能进行关系比较操作

3.执行下列语句后的显示结果是(      )。A

world="world"

print("hello"+world)

A.helloworld                     B."hello"world

C.hello world                    D."hello"+world

4.下列表达式中,有3个表达式的值相同,另一个不相同,与其他3个表达式不同的是(      )。C

A."ABC"+"DEF"              B.''.join(("ABC","DEF"))

C."ABC"-"DEF"               D.'ABCDEF'*1

5.设s="Python Programming",那么print(s[-5:])的结果是(      )。A

A.mming            B.Python         C.mmin             D.Pytho

6.设s="Happy New Year",则s[3:8]的值为(      )。B

A.'ppy Ne'            B.'py Ne'       C.'ppy N'     D.'py New'

7.将字符串中全部字母转换为大写字母的字符串方法是(      )。D

A.swapcase         B.capitalize        C.uppercase         D.upper

8.下列表达式中,能用于判断字符串s1是否属于字符串s(即s1是否s的子串)的是(      )。D

①s1 in s;②s.find(s1)>0;③s.index(s1)>0;④s.rfind(s1);⑤s.rindex(s1)>0

A.①         B.①②        C.①②③         D.①②③④⑤

9.re.findall('to','Tom likes to play football too.',re.I)的值是(      )。A

A.['To', 'to', 'to']            B.['to', 'to', 'to']

C.['To', 'to']                  D.['to', 'to']

10.下列程序执行后,得到的输出结果是(      )。C

import re

p=re.compile(r'\bb\w*\b')

str="Boys may be able to get a better idea."

print(p.sub('**',str,1))

A.** may be able to get a better idea.

B.Boys may be able to get a ** idea.

C.Boys may ** able to get a better idea.

D.Boys may ** able to get a ** idea.

二、填空题

1."4"+"5"的值是        '45'

2.字符串s中最后一个字符的位置是        len(s)-1

3.设s='abcdefg',则s[3]的值是        ,s[3:5]的值是        ,s[:5]的值是        ,s[3:]的值是        ,s[::2]的值是        ,s[::-1]的值是        ,s[-2:-5]的值是        

'd''de''abcde''defg''aceg''gfedcba'''

4.'Python Program'.count('P')的值是        2

5.'AsDf888'.isalpha()的值是        False

6.下面语句的执行结果是        ['A', 'A', 'A']

s='A'

print(3*s.split())

7.已知s1='red hat',print(s1.upper())的结果是       ,s1.swapcase()的结果是       ,s1.title()的结果是       ,s1.replace('hat','cat')的结果是       

RED HAT,'RED HAT''Red Hat''red cat'

8.设s='a,b,c',s2=('x','y','z'),s3=':',则s.split(',')的值为       ,s.rsplit(',',1)的值为       ,s.partition(',')的值为       ,s.rpartition(',')的值为       ,s3.join('abc')的值为       ,s3.join(s2)的值为       

['a', 'b', 'c']['a,b', 'c']('a', ',', 'b,c')('a,b', ',', 'c'),'a:b:c','x:y:z'

9.re.sub('hard','easy','Python is hard to learn.')的值是      

'Python is easy to learn.'

10.下列程序执行后,得到的输出结果是      ['An', 'elite', 'university']

import re

str="An elite university devoted to computer software"

print(re.findall(r'\b[aeiouAEIOU]\w+?\b',str))

三、问答题

1.什么叫字符串?有哪些常用的字符编码方案?

字符集(Charset):是一个系统支持的所有抽象字符的集合。

字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

字符编码(Character Encoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的一项基本技术。通常人们用符号集合(一般情况下就是文字)来表达信息。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。

常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。

2.数字字符和数字值(如'5'和5)有何不同?如何转换?

'5'是字符变量,5是数字字符。

3.为什么print('I like Python'* 5)可以正常执行,而print('I like Python'+5)却运行时出错?

在 Python 中不能把两个完全不同的东西加在一起,比如说数字和文本,正是这个原因, >>>print('I love fishc.com ' + 5) 才会报错。 不过乘以一个整数 来翻倍就具有一定的意义了,前边的例子就是将 "I love python.com" 这个字符串打印五次。

4.写出表达式。

(1)利用各种方法判断字符变量c是否为字母(不区分大小写字母)。

c.isalpha()或c.lower()<='z' and c.lower()>='a'或c.upper()<='Z' and c.upper()>='A'或c<='Z' and c >='A'or c<='z'and c >='a'

(2)利用各种方法判断字符变量c是否为大写字母。

c.isupper()或者c<='Z' and c>='A'

(3)利用各种方法判断字符变量c是否为小写字母。

c.islower()或者c<='z' and c>='a'

(4)利用各种方法判断字符变量c是否为数字字符。

 c.isdigit()或c<='9' and c>='O'

5.re.match("back","text.back")与re.search("back","text.back")的执行结果有何不同?

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐