Python150题day03

1.2字符串练习题

①字符串内置方法练习

在交互式解释器中完成下列题目
1.将字符串“abcd"转成大写
2.计算字符串“cd”在 字符串“abcd"中出现的位置
3.字符串“a,b,c,d”,请用逗号分割字符串,分割后的结果是什么类型的?

4."[name]喜欢{fruit}".format(name="李雷")执行会出错,请修改代码让其正确执行

5. string ="Python is good", 请将字符串里的Python替换成 python,并输出替换后的结果
6.有一个字符串 string =“python修炼第一期.html",请写程序从这个字符串里获得.htm前面的部分,要用尽可能多的方式来做这个事情
7.如何获取字符串的长度?
8."this is a book",请将字符串里的book替换成apple
9."this is a book",请用程序判断该字符串是否以this开头

10."this is a book",请用程序判断该字符串是否以apple结尾

11."This IS a book"请将字符串里的大写字符转成小写字符
12."This IS a book",请将字符串里的小写字符转成大写字符
13."this is a book\n",字符串的末尾有一个回车符,请将其删除

解答:

1. "abcd".upper()
2. "abcd".find('cd')
3. "a,b,c,d".split(',')
4. "{name}喜欢{fruit}".format(name="李雷", fruit='苹果')
5. string.replace('Python', 'python')
6. string[0:string.find('.html')] 或者string[0:-5]
7. 使⽤用len函数
8. "this is a book".replace('book', 'apple')
9. "this is a book".startswith('this')
10. "this is a book".endswith('apple')
11. "This IS a book".lower()
12. "This IS a book".upper()
13. "this is a book\n".strip()

这里只对其中2个题目讲解


第4小题的程序直接运行会报错,因为字符串里面有两个需要替换的位置,而format方法里只传入了一个参数,显然是不够


第13小题,strip()方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列,n 就是换行符,这里又涉及到转义字符这个概念,本篇不做详细讲解,求知欲强的同学可以自己百度一下

②逻辑推理练习(字符串)

不用代码,口述回答下面代码的执行结果

string = "Python is good"
1. string[1:20]

2. string[20]

3.string[3:-4]
4.string[-10:-3]
5.string.lower()
6.string.replace("o","0")

7. string.startswith(python')
8. string.split()
9. len(string)
10. string[30]
11.string.replace("",")

解答:

1. 'ython is good'
2. 报错
3. 'hon is '
4. 'on is g'
5. 'python is good'
6. 'Pyth0n is g00d'
7. False
8. ['Python', 'is', 'good']
9. 14
10. 报错
11. 'Pythonisgood'

第2题和第10题都报错,是因为超出了索引范围,字符串长度为14,你去20和30的位置取值,当然会报错
关于切片操作,只需要知道从哪里开始到哪里结束就一定能推导出答案,以string[3:-4]为例,3是开始的位置,-4是结束的位置,但这个范围是左闭右开的,从3开始没错,但不会到-4,而是到-5,更前面的一个位置,python支持负数索引,或者说是反向索引,从右向左从-1开始逐渐减小。
第一题中,做切片的时候是从1开始,到20结束,即便是右开,直到19,也仍然超出了索引范围,为什么不报错呢,这就是语言设计者自己的想法了,切片时,不论是开始位置还是结束位置,超出索引范围都不会报错,我猜,大概是由于切片是一个范围操作,这个范围内有值就切出来,没值返回空字符串就好了。

你可能感兴趣的:(Python150题,python)