字符串索引及其越界問題 out of range


在學列表的時候,我們知道了可以通過 索引 來訪問列表里的元素,其實字符串也一樣有 索引和分片,與列表規則一致。

 

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(' '))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM