2016-06-29 5 views
-1

私は非常に基本的なプログラマーですので、私は非常に基本的なプログラマーと言いたいと思います。pythonの.txtファイルは、.txtの単語ではなく、一度に1文字を識別しています

私は、キーワードリストなどを定義する.txtファイルを持っている:

pig,dog,cat 

私の本当のリストははるかに大きいですが、同じフォーマットを持っています。

ユーザーが何かを入力して、ユーザーが入力した単語の1つと.txtファイルの一般的な内容のいずれかが検出された場合は、応答が得られます。単語の1つが見つからない場合は、別の応答を返します。

start_question = str(input("keywords are pig , cat , dog ")) 


with open('D:\Program Files (x86)\Python Programming\python.txt'): 
    if any(word in start_question for word in ('D:\Program Files (x86)\PythonProgramming\python.txt')): 
    print ("yes") 


else: 
    print ("no") 

今ファイルが正常に開きますが、その代わりcomomon内の単語を見つけることが一般的で手紙を見つけました。だから私が 'p'を入力しても「はい」と言われますが、いいえと言いたいのです。

ありがとうございます。

+0

'任意の(( 'D:\プログラムファイル(x86の)\ PythonProgrammingの\ python.txt' 内の単語のstart_question中の単語))し'あなたが思っていることをしないでください。リテラル文字列 '' D:¥Program Files(x86)¥PythonProgramming¥python.txt 'の文字が 'start_question'にあるかどうかをチェックしています。私は、あなたが 'with'を使う方法についてドキュメントを再度読む必要があると思います。 –

答えて

1

コンテンツではなくファイルパスの文字列を調べています。

with open('D:\Program Files (x86)\Python Programming\python.txt') as fl: 
    if any(word in start_question for word in fl): 
     print("yes") 
    else: 
     print("no") 

をしかし、別の問題もあります:

ファイルをループし、あなたはこのような何かをしたいと思います。

cat,dog,pig 

そして、あなたの入力がcatで、あなたは常にnoを得るでしょう:あなたのファイルがある場合。

なぜですか?

ファイル内の行の内容を探しているためです。これはあなたが見ていることを意味します

if any('cat,dog,pig' in 'cat') 

これは動作しません。

あなたはあなたのファイルをフォーマットする必要があります:

cat 
dog 
pig 
+0

こんにちは、私は今yes応答を与える方法を見つけることができません。私は自分の.txtを再フォーマットし、まだ何もありません。私のプログラムを編集したときにも、ファイルに変数名を付けるだけでした。コードの最後にF1を追加したように、 – Callum

+0

@Callumもう一度見てください。 'with open()as fl:'はファイルポインタをflに割り当てます。 – cwallenpoole

関連する問題