切片练习
利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()
方法:
# -*- coding: utf-8 -*-
def trim(s):
if s[:1] != ' ' and s[-1:] != ' ':
return s
elif s[:1] == ' ':
return trim(s[1:])
else:
return trim(s[:-1])
这里有个需要注意的点,如果把第二行的s[:1]
和 s[:-1]
改成 s[0]
,s[-1]
时候:
遇到输入为 s = ''
,即s为空值的时候,会报错。
IndexError: string index out of range
这是因为s[0]
处为空值,没有可以返回的内容,所以索引值超出了范围!
我的理解是,切片的话返回的是一整块,但是索引是挑个儿。就跟报数一样,可以喊一组报数,没有人是一回事,但是本来就没有张三这个人,点张三的名字就很奇怪。