2016-05-12 116 views
0

我目前正在學習Python,我有一個問題,我也找不到答案,目前我正在嘗試從用戶獲取字符串變量並將其與另一個字符串的一部分進行比較。我想是這樣的:在python 3.5中,如何將字符串變量與另一個字符串的一部分進行比較?

計劃:給定的一句話就是「我喜歡化學」,輸入中給出的 句子中的詞彙。

用戶:喜歡

程序:您的詞語在句子中。

我只能似乎使使用if功能和==程序,但這似乎只認識這兩個字符串是相似的,如果我輸入該程序提供的完整的句子。

任何幫助將不勝感激

從一些問題的答案我已經改變了我的計劃,但似乎我無法找到一個錯誤。

sentence=("I like chemistry") print("The given sentence is: ",sentence) word=input("Give a word in the sentence: ").upper while word not in sentence: word=input("Give a valid word in the sentence: ") if word in sentence: print("valid")

+0

它需要是一個*字*,或可以匹配任何子字符串嗎? –

+0

你想測試句子中的單詞是**。你有沒有試過'如果在句子中的單詞'? –

+0

任何單詞,如在用戶中可以輸入「喜歡」給定的句子,程序會告訴你它是匹配的。 –

回答

0
if word in sentence: 

歡迎蟒蛇的精彩世界。

0

在Python中,您使用if substring in string: ...

例子:

mystring = "I like chemistry" 
if "like" in mystring: 
    print("Word is in sentence") 
else: 
    print("Word is not in sentence") 

希望這有助於!

1

您可以用split使用in在一起:

>>> s = "I like chemistry" 
>>> words = s.split() 
>>> "like" in words 
True 
>>> "hate" in words 
False 

的區別這個方法之間的對比使用in對非分割字符串是這樣的:

>>> "mist" in s 
True 
>>> "mist" in words 
False 

如果你想隨心所欲子然後使用簡單的w in s,但是你想要空格分隔的話,然後使用w in words

0

不要認爲它是查找子字符串,而是將其視爲檢查成員資格。而且Python中的所有序列類型都爲此提供了相同的接口。說s是一個序列,即strlisttuple並看看ms

>>> m in s # => bool :: True | False 

同樣in操作適用於dict鍵和set爲好,雖然他們不是序列。

相關問題