国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Python > 正文

Python index()函數在字符串處理中的使用

2023-04-26 12:04:42
字體:
來源:轉載
供稿:網友

Python提供了大量的字符串處理函數,可以幫助我們完成很多有意義的工作。

這里介紹的 index() 函數也是一個Python內建的字符串處理函數,它的作用是返回子字符串在原字符串中首次出現的位置索引。

index()函數的語法格式

str.index( sub [, start [, end ]])

str:是要進行處理的字符串或字符串變量;

各參數的含義如下:

  • sub:要查找的子字符串;
  • start:可選參數,在 str 中開始查找的起始位置索引,默認為0;
  • end:可選參數,在 str 中查找時停止搜索的位置索引,默認為字符串的長度;

index()函數使用示例

1、只給出 sub 參數

>>> str1 = "武林網VEVB"
>>> print(str1.index('武林網'))
0
>>> print(str1.index('IT'))
3
>>> print(str1.index('樂園'))
5
>>> print(str1.index('it'))
Traceback (most recent call last):
    File "<pyshell#6>", line 1, in <module>
       print(str1.index('it'))
ValueError: substring not found
>>> str1 = "Python is good.Python is easy."
>>> print(str1.index('Python'))
0

從這個例子可以看出,如果原字符串中不包含要產找的子字符串,該函數會拋出一個 ValueError 錯誤:ValueError:substring not found,即未找到子字符串。

同時,這個例子也說明該函數是大小寫敏感的。

如果字符串中含有多個子字符串時,index() 函數僅給出第一次出現子串的索引位置

以上例子在Python IDLE中運行的情況如下圖所示:

Python index()函數使用的例子

2、使用 sub 和 start 參數

>>> str1 = "www.survivalescaperooms.com"
>>> print(str1.index('VeVb', 3))
4
>>> print(str1.index('.com', -4))
10
>>> str1 = "Python is good.Python is easy."
>>> print(str1.index("Python", 0))
0
>>> print(str1.index("Python", 3))
15

從該例可以看出,start 參數也可以給負數,即從字符串的尾端往前定位,從字符串尾端往前定位時,最后一個字符的索引為-1,則該例給的 -4 的值是字符“.”的位置。

以上例子在Python 3.8.2中的運行情況:

Python index()函數使用舉例

3、使用end參數

>>> str1 = "河北泊頭:中國鴨梨第一鄉"
>>> print(str1.index("泊頭", 2, 4))
2
>>> print(str1.index("泊頭", 2, 3))
Traceback (most recent call last):
    File "<pyshell#21>", line 1, in <module>
        print(str1.index("泊頭", 2, 3))
ValueError: substring not found
>>> print(str1.index("泊頭", 1, -3))
2

以上在Python 3.8.2中的運行情況如下圖所示:

end 參數是index()函數搜索的停止位置,在匹配子串時不包括 end 位置的字符,上面第2個例子就說明了這個問題。

同時,end 參數也可以使用負數來表示,則是從后往前進行定位。

index()函數異常的處理

由于當字符串中不含子串時,index() 函數會報錯,有時使用不夠方便。在實際中,我們可以借助Python的異常處理機制來完成工作,見下面的例子。

>>> str1 = "武林網VEVB"
>>> try:
           print(str1.index('It'))
except ValueError as ve:
           print("沒有找到子字符串")

沒有找到子字符串

在Python3.8.2中的運行情況如下圖所示:

index() vs find()

在Python中 index()函數與 find()函數(find()函數的使用見本站《Python中find()字符串函數的使用方法》)僅有一點不同之處,那就是find()函數在給子字符串定位時,當字符串中不包含子字符串的值時,會返回-1,而不是像index()那樣給出一個 ValueError 的錯誤。見下面的對比例子:

>>> str1 = "I Love you."
>>> print(str1.index('love'))
Traceback (most recent call last):
    File "<pyshell#42>", line 1, in <module>
       print(str1.index('love'))
ValueError: substring not found
>>> print(str1.find('love'))
-1
>>>

本文(完)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东阿县| 宣化县| 蚌埠市| 孝义市| 平谷区| 汕头市| 海林市| 蒲城县| 固安县| 英超| 麦盖提县| 察隅县| 民县| 玉山县| 杂多县| 繁昌县| 固始县| 阿尔山市| 墨竹工卡县| 绵竹市| 康乐县| 宜兰县| 泽州县| 伊宁县| 蒲江县| 金堂县| 松溪县| 北安市| 都江堰市| 定结县| 台山市| 玉田县| 临沧市| 平舆县| 迭部县| 五台县| 大同县| 巴彦县| 福州市| 东阿县| 怀远县|