我正在編寫一個解析器,其中兩行被比較在一起('mainline'可以這麼說,行之前它)。如果兩條線都匹配,主線將被丟棄。我只希望這發生在僅包含換行符或回車換行符的行上。所以我有這樣的代碼Python:在if語句中使用'or'會導致代碼執行,即使條件不被滿足
lastline = 0
pointer = 0
for lines in fileLines:
mainline = fileLines[pointer]
if lastline != 0:
print "Last Line: ",lastline
print "This Line: ",mainline
if lastline == '\n' or '\r\n':
if mainline == '\n' or '\r\n':
print "Would drop"
lastline = mainline
pointer = pointer + 1
每一個時間它會通過for循環會打印出「會下降」,當字符串肯定不是任何這些四個選項。我想我正在做一些完全倒退的事情,但我正在給自己教python,所以當我遇到錯誤的時候,我沒有任何人告訴我。感謝上帝,你們在這裏。任何想法爲什麼發生這種情況?
感謝您的所有幫助,它的工作非常完美。謝謝!!!
下面的答案已經解決了代碼中的錯誤。但重要的是要注意,您不必爲不同的行結尾明確編碼。請參閱http://www.python.org/dev/peps/pep-0278/。 – 2012-03-09 22:33:32