python字符串例题_Python专项基础练习(字符串)练习题
1、 字符串练习题
1.1、字符串内置方法练习
在交互式解释器中完成下列题目将字符串 "abcd" 转成大写
计算字符串 "cd" 在 字符串 "abcd"中出现的位置
字符串 "a,b,c,d" ,请用逗号分割字符串,分割后的结果是什么类型的?
"{name}喜欢{fruit}".format(name="李雷") 执行会出错,请修改代码让其正确执行
string = 'python is good'
给定一个字符串string = "python修炼第一期.html",请编写一个程序以提取该字符串中".html"前缀部分的所有字符,并通过多种方法实现这一目标
如何获取字符串的长度?
"this is a book",请将字符串里的book替换成apple
"this is a book", 请用程序判断该字符串是否以this开头
"this is a book", 请用程序判断该字符串是否以apple结尾
"This IS a book", 请将字符串里的大写字符转成小写字符
"This IS a book", 请将字符串里的小写字符,转成大写字符
"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') 或者 print(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题中提到,在Python中使用strip()方法去除字符串前后指定字符(默认为空格或回车符)以及连续字符;而\n则代表换行符;不过这一过程也同时牵涉到转义字符的概念,在此不做深入阐述,请有这方面兴趣的同学自行查阅相关资料获取更多信息
1.2、逻辑推理练习(字符串)
不用代码,口述回答下面代码的执行结果
string = "Python is good"string[1:20]
string[20]
string[3:-4]
string[-10:-3]
string.lower()
string.replace("o", "0")
string.startswith('python')
string.split()
len(string)
string[30]
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实际上是延伸至-5的位置(即比-4更前面的一个位置)。需要注意的是,在Python中字符串切片采用的是左闭右开的方式(即从start到end不包含end),因此在使用负数索引时会得到预期的结果。
在第一题中,在切片操作中是从索引1开始,并一直到索引20结束的设置下,在右闭左闭区间的情况下(即从起点开始包括起点而终点不包括),即使到达索引19也会依然处于越界状态。换句话说,在这种情况下并不会触发异常是因为这正是语言设计者有意为之的设计结果。因此,在处理越界情况时,默认会返回空字符串。
