2017-12-23 6 views
0

私はこのPythonコードを使用して3ワードを選んで5ワードからランダムにメッセージを形成しています。リストからランダムなメッセージを生成

def randomMessage():  
    word = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird'] 

    return (random.sample(word, 3)) 

、その後、コードの後半に、私は

" + randomMessage() + " 

を使用してメッセージでこれを入れたいが、それは「リスト、ないをstrされなければならない」と言って私にエラーを与えます。

どうすればこの問題を解決できますか?

+0

"+ STR(randomMessageを(キャメルケースではない)、それ

return " ".join(random.sample(word, 3)) 

それともあなたはそれがより明確にすることができ

def random_message(): words = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird'] three_words = random.sample(words, 3) return " ".join(three_words) 

注意を修正する最も簡単な方法)+ " – smoggers

+2

@smoggers、悪いアドバイス。 – alexis

+1

私は100000%異なるマスクの下にある多くの複製であることを確信しています。 –

答えて

3

liststr.joinを使用する必要があります。与えるだろう

' '.join(random.sample(word, 3)) 

>>> ' '.join(random.sample(word, 3)) 
'Bird Dog Cat' 

random.sample(word, 3)戻り listを呼び出すので、すべての要素間のスペースで、 stringに変換し

は、あなたのような何かをする必要があり

答えを完成させるには、randomMessage()関数の最後に行を変更して、全体を作成する必要があります事:

def randomMessage(): 
    word = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird'] 
    return ' '.join(random.sample(word, 3)) 

といくつかのテストは、それが今stringを返すことを示しています

>>> randomMessage() 
'Animal Queen Bird' 
>>> randomMessage() 
'Cat Dog Animal' 
>>> randomMessage() 
'Animal Cat Bird' 
>>> randomMessage() 
'Bird Dog Animal' 
1

あなたの方法はリストではなく、文字列を返します。 Pythonでこのスタイルを使用します:random_messagerandomMessage

関連する問題