2016-05-04 66 views
1

我有一些Python代碼需要從名爲varfile.txt的文本文件中獲取字符串輸入以及要應用於該數據並打印輸出的條件。的代碼如下:Elif Python中的條件

file = open("varfile.txt", "r") 
lines = file.readlines() 
e= str(lines[1]); 
print(e) 
if e == '<0.1%': 
     print("1") 
elif e == '(0.1-25)%': 
     print("2") 
elif e == '(0.25-0.5)%': 
     print("3") 
elif e == '(0.5-1)%': 
     print("4") 
elif e == '>1%': 
     print("5") 
else: 
     print("0") 

的輸出中是如下:

(0.25-0.5)% 
0 

即使e值打印爲(0.25-0.5)%,它不與所述的elif子句中的條件相比較,並給0作爲輸出雖然應該是3。你能否建議我哪裏出錯?

+0

PLS上傳輸入文件 –

+0

我認爲您在elif條件下使用了額外的空間。它應該是電子=='(0.25-0.5)%'不'(0.25-0.5)%' –

+0

雅..這很好,你可以看到,它正在打印正確的價值,但有一些比較錯誤 –

回答

7

根據this tutorialfiles.readlines()不會從行的末尾去除結尾換行符。

您可以使用e.strip('\n')返回去掉換行符的字符串,例如:

e = e.strip('\n') 
if e == ...: 
elif ... 
+3

我建議在比較之前剝掉所有空格字符而不是隻換行,因爲用戶可能會更改的文件很容易在行尾添加空格,否則會導致難以理解的錯誤。所以只需使用'e.strip()'。 –