在學列表的時候,我們知道了可以通過 索引 來訪問列表里的元素,其實字符串也一樣有 索引和分片,與列表規則一致。
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(' '))