字符串练习题1
1、给定字符串"Monty Python"
(a)写出表达式显示第一个字符。
(b)写出表达式显示最后一个字符。
©写出包含len函数的表达式,显示最后一个字符
(d)写出一个表达式,显示"Monty"。
【参考答案】
(a)"Monty Python"[0]
(b)"Monty Python"[-1]
(c)"Monty Python"[len("Monty Python")-1]
(d)"Monty Python"[0:5]
2.给定字符串"homebody"
(a)写出分片为"home"的表达式
(b)写出分片为"body"的表达式。
(a)"homebody"[:4]
(b)"homebody[4:]
3.字符串s长度为偶数:
(a)写出显示前半段字符串的表达式
(b)写出显示后半段字符串的表达式
注意:/得到的是带小数点的,但切片需要的是整数索引值。要进行转换
(a)s[:int(len(s)/2)]
(b)s[int(len(s)/2):]
4.字符串s长度为奇数:
(a)写出显示中间字符的表达式。
(b)写一个表达式,显示从开始到中间字符(但不包括)的子串(即,字符串的前半部分)
(c )写一个表达式,显示从中间字符(但不包括)到结尾的子串。
(a)s[int(len(s)/2)]
(b)s[:int(len(s)/2)]
(c )s[int(len(s)/2)-1:]
5.字符串X=“what is your name?”
(a)X[::2]返回什么值?
(b)x[2:8:-1]返回什么值?
(a)"wa syu ae"
(b)' '
6.给定的字符串x=“acegikmoqsuwy"和y=”+bdfhjlnprtvxz",使用索引来创建一个字符串z(小写英文字母表)。
创建空字符串,x和y交替往里面加字符。
x="acegikmoqsuwy"
y="+bdfhjlnprtvxz"
z=""
for i in range(len(x)):
z=z+x[i]+y[i+1]
7.加号(+)在Pyon中进行了重载,解释为什么5+4等于9,‘5’+‘4’等于’54’,5+4.0等于9.0。
5+4=9
5和4都是数字类型,+作为加法运算符,进行相加操作,得到9
‘5’+‘4’=‘54’
‘5’和‘4’都是字符串类型,+作为字符串连接符,进行连接,得到‘54’
5+4.0=9.0
整数和浮点数进行相加时会得到浮点数的结果。
8.下面的表达式将输出什么?
x='This is a test.’
print(x*3)
This is a test.This is a test.This is a test.
9.Monty Python喜剧艺术团有一个著名的小品集,是关于一家餐馆的。这家餐馆的菜单主要是Spam,一种火腿和猪肉制成的罐头。其中一个菜单的内容是“Spam,Spam,Spam,Spam,Spam,baked beans,Spam,Spam,Spam,and Spam.”写一个Python 字符串表达式,使用连接(+)和重复(")运算符来生成此菜单项。
a="Spam"
b=","
caidan=(a+b)*5+"baked beans"+(b+a)*3+b+"and "+a+"."
10.你能用一行代码实现以下效果吗?
print(“I like writing in Python.”)
print(“It is so much fun.”)
执行后,运行结果为:
I like writing in Python.
It is so mch fun.
print("I like writing in Python.\nIt is so much fun.")
11.5种字符串操作方法:capitalize、title、swapcase、upper、lower。字符串 sl=“concord”,s2=“souix city”,s3-"HONOLULU"和 s4 =“TopHat”。
(a)说明哪个字符串是capitalize的结果。
(b)说明哪个字符串是swapcase的结果。
©说明哪个字符串是 upper 的结果
(d)说明哪个字符串是 lower的结果
(e)说明哪个字符串是 title 的结果。
(a)capitalize将字符串的第一个字母变成大写,其余字母变为小写。
(b)swapcase是大写转小写,小写转大写。
(c)upper是全部转大写
(d)lower是全部转小写
(e)title是把所有单词的第一个字母变为大写,其他小写
12.能将多个字符串方法在一个表达式中联合使用吗?例如s=“CAT”,s.upper.lower是什么意思?
先把字符串所有字母变成大写,再把得到的结果所有字母变成小写
13.两个字符串方可以在指定宽度中对字符串进行左右对齐处理。默认情况下用空格填充但 也可以指定填充字符。假设s=“Topkapi”、s.rjust(20,“.”)或s.ljust(15),操作的结果是什么?实验左、右对齐方式。描述ljust和rjust的规则。
ljust是靠左边
rjust是靠右边
第一个参数是字符串的宽度
第二个参数是填充的符号,如果没有就默认是空格
14.两个字符串方法:find和index,用于判定一个字符是否在字符串中。
(a)如果找到一个字符,两种方法是相同的结果。如果没有找到字符,两种方法得到不同结
果。描述没有找到字符时两种方法的区别。(b)find和index方法不仅限于寻找单字符,还可以搜索子串。假定s=“Topkapi”,那么s.find(“kap”)得到什么结果?说明 find 的输出规则。
(a) 如果没有找到字符时,`find` 方法会返回 `-1` 而 `index` 方法会主动抛出错误。
(b) 对于字符串 `s = "Topkapi"`,使用 `s.find("kap")` 将会得到结果 `3`。这是因为子串 `"kap"` 在字符串 `"Topkapi"` 中的开始索引是 `3`(字符串的索引是从 `0` 开始计数的)。
`find` 的输出规则是:
- 如果找到子串,返回其在字符串中的最低索引位置。
- 如果没有找到子串,返回 `-1`。
15.用input命令提示输入,然后将输人转换为小写字符。
a=input().lower()
16.将字符串转换成单词首字母大写的形式。例如,将"NEW YORK"转换为"New York"。
a=input().title()
17.实验count方法。count 对什么计数?例如:
someStr=“Hello world!”
someStr.count("o”)
这里是统计字符串中有多少个“o”
结果为2
18.实验strip方法,它实现什么功能?例如:
somestr=“Hi!..“
somestr.strip(”.!”)
去掉字符串中的“.”和“!”两个符号
19.以“is”开头的字符串方法返回值为“真”或“假"。实验这些方法,看看它们是如何工作的,例如哪些情况会返回真,哪些情况会返回假?
在 Python 中,以“is”开头的方法主要有两个:isalpha()、isdigit()、isalnum()、isupper()、islower()、istitle()等。
isalpha():判断字符串是否只包含字母(a-z, A-Z)
isdigit():判断字符串是否只包含数字。
isalnum():判断字符串是否只包含字母和数字。
isupper():判断字符串是否所有字母都是大写。
islower():判断字符串是否所有字母都是小写。
istitle():判断字符串是否是标题格式(每个单词的首字母大写)。
20.字符串运算符
(a)假设要显示1行“#”字符。为了简便起见,假设1行只有80个字符。1种方法是创建一个长字符串再显示。在Pyhon中,怎样采用加号(+)来操作字符串?
s=""
for i in range(80):
s=s+"#"
(b)假设要显示1列“#”字符。为了简单起见,假设一列只有30个字符。类似于(a)的情况。在Python中,怎样采用更优雅的方式用乘号(*)更好地操作字符串?提示:使用换行符(\n)。
print("#\n"*30)