2016-05-14 51 views
-1

我有兩個字符串string0和string1。我想檢查一個輸入是否包含小寫的這些字符串。但它只是檢查其中的一個。檢查兩個字符串轉換爲lower()未按預期工作

import sys 

string0 = "Weather" 
string1 = "Like" 
userInput = input("say whatever") 

if string0.lower() and string1.lower() in userInput: 
    print("it is quite nice") 

這裏它只是檢查string1。我不明白爲什麼,有什麼想法?我使用python 3

+0

因爲你在這裏誤用'和'運算符。左手邊總是「真」。 – usr2564301

回答

0

你必須單獨檢查每個字符串,試試這個:

if string0.lower() in userInput and string1.lower() in userInput: 
0

您必須逐個檢查的條件。第一部分將評估爲True。除了空字符串''每串計算結果爲True

if string0.lower() in userInput and string1.lower() in userInput: 
+0

哦對。不知道我在想什麼,謝謝! –

0

你可能想or檢查或者串,再加上,你的情況是不完全正確。

if string0.lower() in userInput or string1.lower() in userInput: 

你也可以試試這個

if userInput in {string0.lower(), string1.lower()}: 
-1

in測試一個值是否在值列表。所以,你的邏輯是倒退,你要看到,如果userInput允許值:

if userInput in [string0.lower(), string1.lower()]: 
    print("it is quite nice"); 
+0

不是在我的情況,如果我這樣做就像你建議我不能輸入「什麼是天氣」或類似的東西,這是我想要的。 –

+0

@UlrikKarlsson那是應該包含在問題中的信息。基於你剛纔所說的正則表達式比'in'運算符更適合。 –

0

您使用的是在這種情況下。你可能需要一個or。

+0

不,我希望用戶輸入「天氣」和「喜歡」。 –