我有以下代碼多個條件不工作
if "[FAILED]" in line and (("Result:" not in line) or ("Date:" not in line)):
print line
我逐行讀取文本文件行。我想在文本文件「[FAILED]」中查找任何地方,但它不能在同一行中顯示「Result:」或「Date:」。
我的代碼當前打印出行,即使它有結果或日期它。
任何幫助,將不勝感激。
感謝。
我有以下代碼多個條件不工作
if "[FAILED]" in line and (("Result:" not in line) or ("Date:" not in line)):
print line
我逐行讀取文本文件行。我想在文本文件「[FAILED]」中查找任何地方,但它不能在同一行中顯示「Result:」或「Date:」。
我的代碼當前打印出行,即使它有結果或日期它。
任何幫助,將不勝感激。
感謝。
您在括號需要的狀況之間的and
。
布爾邏輯是棘手的,如果經常幫助有需要經過例子。考慮這一行:
FAILED blah blah Date: blah
所以,通過你的條件之一會由一個:
顯然,如果該行包含「Result:」而不是「Date:」,則會發生同樣的情況。
如果你已經和括號裏面,就需要檢查都「日期」是不是在行和「結果」不在行,而不是高興,如果要麼都沒有了。
一種不同的方式來表達,這可能是更清晰的狀況是這樣的:
if "[FAILED]" in line and not (("Result:" in line) or ("Date:" in line)):
我剛剛意識到這一點......)愚蠢的錯誤。感謝所有的幫助。我會將你的回答標記爲答案。 – Jeremy
嘗試畫的真值表你expression..then,你會發現這個問題。 –