2016-05-04 9 views
1

私は、varfile.txtという名前のテキストファイルから文字列入力を受け取り、そのデータに適用して出力を出力する必要のあるPythonコードをいくつか持っています。コードは以下の通りである:PythonのElif条件

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") 

次のようにouputをある:

(0.25-0.5)% 
0 

e値を(0.25-0.5)%として印刷されていても、それはELIF節状態と比較として0を与えていません出力は3でなければなりません。私が間違っている場所をお勧めしますか?

+0

PLSは入力ファイルをアップロードします –

+0

あなたはelif条件で余分なスペースを使用していると思います。それはe == '(0.25-0.5)%ではありません'(0.25-0.5)% ' –

+0

ya..thatは正しく表示されていますが、正しい値が表示されていますが、比較でエラーがあります。 –

答えて

7

this tutorialfiles.readlines()によると、改行の最後の改行文字は削除されません。

あなたは:例えば、削除改行文字列を返すように

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

ユーザーが変更する可能性のあるファイルには行末にスペースが含まれている可能性があるため、比較する前に改行だけでなくすべての空白文字を削除することをお勧めします。だから単に 'e.strip()'を使います。 –