2016-05-07 4 views
0

私は私のプログラムにインポートしたファイル(辞書)に対してフレーズユーザ入力を比較しようとしています。私が持っているコードは次のとおりです。テスト入力(パイソン)

thesaurus = open("thesaurus.txt", "r") 


phrase = input("Enter a phrase: ") 

for key in thesaurus: 
    if key in phrase: 
     print ("hello") 

そして私は、私は、ファイル内にある知っているフレーズを入力することによって、それをテストしてきたので、私は特定の時点で「hello」を印刷している必要がありますが、私のプログラムは何も返しません。問題は私が設定したforループであると思います。

すべてのヘルプは高く評価され、感謝!

編集:

counter = 0 
for key in thesaurus: 
    counter = 0 
    for x in range(0, len(phrase)): 
     if phrase[counter] == key.rstrip(): 
      print ("hi") 
     counter += 1 
+0

ケースに一貫性がありますか? – cdarke

+2

'key'は新しい行を含みます。代わりに 'key.rstrip()'を使うべきです。 – zondo

+0

@ zondo key.rstrip()一度私はforループの中にいますか? –

答えて

0

あなたが問題のようなものを持っている場合は、良いアイデアは、あなたが比較しようとしている値を見ることが多いです。例えば

for key in thesaurus: 
    print(repr(key)) 

これは、キーが\n文字で終了することを示しています。したがって、彼らはあなたの言葉にすることはできません。

ではなくkey.rstrip()を使用してみてください、それは文字列の右側に空白を除去するための方法です。

+0

iはとして機能するように、その中にテキストを取得できるようにする辞書としてファイルを開く必要があります、 abacist: –

+0

ファイルを辞書として開くことはできません。あなたが望むなら、あなたはそれをリストとして読んでそのリストを辞書に変換することができますが、私はここにその点を見ません –

関連する問題