2017-08-11 6 views
-1

私はスタックオーバーフローに新しいです、そして、誰かが私に次の質問で私を助けてくれるのだろうかと思っていました。あなたが似たような疑問を知っているなら、それを私に指摘してください。ありがとう:)random.choiceはエラーを表示します

これは、 "words.txt"ファイルから6文字の単語のリストを作成する関数load_words()を作成するためのコードです。私はrandom.choice()がリストからランダムな単語を選んで単語に保存するようにします。しかし、私は以下のエラーが表示されます。

import random 
    def load_words(filename, length): 
     file = open(filename, "r") 
     words = [] 
     for line in file: 
      word = line.strip() 
      if len(word)== length: 
       words.append(word) 
    return words 
    word = random.choice(words) 
    print (word) 

私が手にエラーがある:

Traceback (most recent call last): 
    File "C:\Users\mssuk\Desktop\University\Software Engineering\Assignment\assignment 1 - word guessing game\compute_score.py", line 14, in <module> 
    word = random.choice(words) 
    NameError: name 'words' is not defined 
+0

画像がない、単にコピー/エラーメッセージ –

+0

ちょっとジルは、申し訳ありませんが、私はちょうどそれを編集して、エラーメッセージ – Sukey

答えて

0

それはインデントエラーです。あなたのreturn文を4つのスペースでインデントし、コードが機能します。

import random 
def load_words(filename, length): 
    file = open(filename, "r") 
    words = [] 
    #Assuming there is only one word in a line 
    for line in file: 
     word = line.strip().lower() 
     if len(word) == length: 
      words.add(word) 
    file.close() 
    return words 
word = random.choice(load_words(your_filename, your_length) 
print(word) 
+0

ねえ、私はまだ同じエラーを取得していますを追加しました:( – Sukey

+0

を貼り付けてくださいあなたが投稿できますあなたのtxtファイルの2行?それは、デバッグに役立つだろう。 –

+0

をまた、私の編集したプログラムが動作するか確認してください。 –

関連する問題