2016-12-15 4 views
0

私はPythonでいくつかの文字を入力できるプログラムを作成しようとしています。プログラムはこれらの文字の可能な組み合わせをすべて調べます。次にそれを比較して、それが辞書にあるかどうかを確認します。そうであれば、最後に印刷されるリストに追加されます。私は特定のことをする方法を調べなければならなかったし、このエラーが出るまでうまくやっていた。私はこのメッセージを持ったフォーラムを見つけることができません。誰かが私を助けて、それを働かせるために何が必要なのか教えてくれますか?ここに私のコードです。enchant.errors.Error:pyendant-pythonにbytestringsを渡さないでください

import itertools 
import enchant 
how_many_letters=True 
letters=[] 
possible_words=[] 
d = enchant.Dict("en_US") 
print("Welcome to combination letters helper!") 
print("Type the word 'stop' to quit entering letters, other wise do it one at a time.") 
while how_many_letters==True: 
    get_letters=input("Enter the letters you have with not counting spaces:") 
    if get_letters=='stop': 
     how_many_letters=False 
    letters.append(get_letters) 
length=len(letters) 
length=length-1 
del letters[length:] 
print(letters) 
for i in range(length): 
    for subset in itertools.combinations(letters, i):#Subset is the combination thing 
    print(subset) 
    check=d.check(subset) 
    print(check) 
    if check==True: 
     possible_words.append(check) 
print(possible_words) 

ありがとうございます。

答えて

2

あなたは質問への答えはこれです:

あなたはタプルとあなたの範囲が働いていなかったではない文字列を魅了渡す必要があり
for i in range(1, length + 1): 
    for subset in itertools.combinations(letters, i):#Subset is the combination thing 
    s = ''.join(subset) 
    print(s) 
    check=d.check(s) 
    print(check) 
    if check==True: 
     possible_words.append(s) 
print(possible_words) 

(それが可能だあなたは(itertools.permutationsを見てみたいことがあり)それはあなたがが望むものであるならば、私は知りません。)

+0

私は長減算1を必要とする理由は、 "を削除しましたループを終了するように指示していたので、「停止」してください。しかし、それもあなたのコードでそれを行うように見えます。だから私はそれを取り除くことができると思う。途中で応答してくれてありがとう。 1つは、単語ではない組み合わせを与えるので、辞書のチェックが機能していないということです。私が見た葯フォーラムによれば、私はそれを正しくしたと思った。なにが問題ですか? –

+0

先ほど見落としたストップワードを削除するのに使っているのを見て、編集しました。あなたは私に言葉の例を教えてくれますか? –

+0

私はそれを使用しているアプリケーションのためにそれをテストし、すべての単語を含んでいませんでした。良くない。それでも彼らはすべてを通り抜けています。それは別の問題です。とにかく、辞書の言葉は、ここに例があります。 –

関連する問題