2017-01-12 5 views
0

これは私のコードのスニペットですが、私はスクラブルタイプのゲームを作ろうとしていますが、何らかの理由でif文が動作しません。私が開いているファイルは、238,000語の英単語のリストであり、tempwordはこの関数に渡される入力によってあらかじめ定義されています。ここでは、ファイル内のすべての単語と比較して一時単語を取得しようとしていますが、その単語がリストにあることはわかっていますが、それが実行されても集計に追加されません。何かご意見は?私のifステートメントは動作しません

def checkvalidword(tempword): 
    tally = 0 
    file = open("words.txt") 
    for x in file: 
     if x == tempword: 
      tally+=1 
      print("Added to the tally") 
+1

ファイルの各行には1つの単語しかありませんか? –

+0

はい、1行に1語しかありません。最後の行は空白です。 –

+0

あなたは 'file = open(" words.txt ")を追加することができますread()。split(\ n)' –

答えて

1

ファイルから行を読んでいるので、それぞれの行の末尾が「\ n」の

このinstreadをやってみてください。

def checkvalidword(tempword): 
tally = 0 
file = open("words.txt") 
for x in file: 
    if x.strip() == tempword: 
     tally+=1 
     print("Added to the tally") 

お知らせx.strip()

+0

私はx.strip( '\ n')と言わなければならないと思いますか? –

+0

デフォルトでは、すべてのタイプの空白が先頭から最後まで削除されます。 – Vlad

+0

これは、おかげで働いた! –

0

値を比較するために、あなたのようにif.strip()を使用する必要がありますが、そのため、各行の終わりに

if x.strip() == 'abc': 

改行文字\nが存在します。それはファイルの内容を分割して\nに基づいてfile.readlines()を使用することでも良いです

'abc\n' 

:あなたが好きなものが表示されます

print repr(x) 

:あなたはようxrepr値を印刷して、それを確認することができます。したがって、改行文字を明示的にstripにする必要はありません。

関連する問題