首頁 >後端開發 >Python教學 >Python如何判斷字串是否包含指定子字串

Python如何判斷字串是否包含指定子字串

青灯夜游
青灯夜游原創
2018-11-17 14:14:1161669瀏覽

Python如何判斷一個字串是否包含指定字串?這篇文章就跟大家介紹Python判斷一個字串是否包含指定子字串的3種方法。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。

程式設計師在字串上使用的最常見的操作之一是判斷字串是否包含指定子字串。而Python以非常易於閱讀和易於實現的方式就可以實現此功能,有3種方法可以做到這一點。

第一:使用in運算子

最簡單的方法是透過python的 in 運算子。

in取兩個“參數”,一個在左邊,一個在右邊,如果左參數包含在右參數中,則傳回true。

我們來看看這個範例:

>>> str = "Messi is the best soccer player"
>>> result = "soccer" in str
>>> print result
True
>>> result = "football" in str
>>> print result
False

如你所見,當字串中存在子字串時,in運算子傳回True。

否則,它會傳回false。

這種方法非常簡單,乾淨,可讀和慣用。

第二:使用string模組的find()/rfind()方法

你也可以使用的另一種方法是字符串的find方法。

與被計算為布林值的in運算子不同,find方法傳回一個整數。

如果子字串存在,則此整數本質上是子字串開頭的索引,否則傳回-1。

讓我們來看看find方法的實際應用。

>>> import string
>>> str = "Messi is the best soccer player"
>>> str.find("soccer")
18
>>> str.rfind("Ronaldo")
-1
>>> str.find("Messi")
0

這個方法的一個很厲害的地方:可以指定一個開始索引和一個結束索引來限制你的搜尋範圍。

例如:

>>> import string
>>> str = "Messi is the best soccer player"
>>> str.find("soccer", 5, 25)
18
>>> str.find("Messi", 5, 25)
-1

注意:判斷「Messi」時,如果回傳-1,因為你將搜尋限制在索引5和25之間的字串了。

第三:使用string模組的index()/rindex()方法 

index()/rindex()方法跟find( )/rfind()方法相似,只不過在找不到子字串的時候會報一個ValueError的例外。

import string
def find_string(s,t):    
    try:
        string.index(s,t)        
        return True    
    except(ValueError): 
        return False

s='nihao,shijie'
t='nihao'
result = find_string(s,t)
print result  #True

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

以上是Python如何判斷字串是否包含指定子字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn