字符串索引及其越界问题outofrange
在学列表的时候,我们知道了可以通过索引来访问列表⾥的元素,其实字符串也⼀样有索引和分⽚,与列表规则⼀致。
字符串长度超出string = 'Hello World'
# 如果都省略,则是复制⼀个⼀样的字符串
print(string[:])
# 输出:Hello World
分⽚索引超出范围会怎么样?会报错吗?例如:
string = 'Hello World'
print(string[0:100000])
分⽚超出范围是不会报错的。你可以把字符串想象成⼀根绳⼦,分⽚就是⽤⼑将绳⼦切分开来。在字符串长度内分⽚相当于在绳⼦上切割,⽽超出范围相当于⼀⼑砍到了空⽓,对于绳⼦来说没有影响。但如果取
值超出范围则会报错,如:
print(string[1000])
#IndexError: string index out of range
One more example:
利⽤分⽚操作,实现⼀个 trim() 函数,该函数的功能是去除字符串⾸尾的所有空格,字符串中间的空格保留。如:' Hello World ' 处理成 'Hello World'。
def trim(s):
while s[:1]==' ':
s=s[1:]
while s[-1:]==' ':
#这⾥需要注意,如果while s[-1]则会报错,out of range,因为最后⼀个是空字符。
#因为当字符串为空的时候,s[0]也是越界的,s[-1]也是越界的
s=s[:-1]
return s
print(trim(' Hello World'))
print(trim('Hello World '))
print(trim(' Hello World '))
print(trim(' Hello World '))
print(trim(' '))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。