2017-12-19 11 views
-2

これは私が自由な時間にしたことですが、何らかの理由でこのコードを試してみるとすべてが得られます。それは1から6 に乱数を選択することですために目標は代わりに、これは私がPythonで自分のコードに何か問題がありますか

number = 1,2,3,4,5,6 

import random 

for i in range(20): 
    question= raw_input("Do you want a number from 1 to 6") 
    if question == "yes": 
     print number 
    elif question == "no": 
     print "Ok" 

enter image description here

+1

あなたが解決しようとしている問題は何ですか?あなたが答えようとしている質問は何ですか? –

+1

あなたの質問にもっと具体的になるようにしよう – WooWapDaBug

+0

'print number'は何をすると思いましたか? –

答えて

2

何を得るnumberの値はタプル(1, 2, 3, 4, 5, 6)ですので、これは期待通りに働いています。あなたは常に選択からを使用することになるだろうことがわかっている場合、

import random 
result = random.sample(numbers, 1)  
print result # will produce one number from the set 

のか:あなたは、そのセットからランダムな番号を選択したい場合は 、あなたはrandom.sample機能に

例を使用してみてください連続した範囲を使用することができますrandint

+0

あなたは彼らがリスト内の数字を望んでいると思いますか? –

+0

これは、OPが問題を最初に指定した方法だからです:) –

+0

私は改訂履歴をチェックして、そのようなことを見つけることができません。 –

1

はい、あなたはintのリストを出力するだけでコードが間違っています。あなたが探しているものを

import random 
for i in range(20): 
    question= raw_input("Do you want a number from 1 to 6") 
    if question == "yes": 
     print random.randint(1, 6) 
    elif question == "no": 
     print "Ok"` 
2

random.choiceです:乱数を取得するには、random.randint関数のように使用する必要があります。

サンプルコード:

>>> import random 
>>> number = [1,2,3,4,5] 

>>> for i in range(3): 
     print(random.choice(number)) 
=> 5 
    4 
    2 

Pythonのドキュメントから:

random.choice(配列)

戻り、空でないシーケンスからランダム要素 seq。 seqが空の場合、IndexErrorが発生します。あなたのコード内の問題については


、あなたはどのランダムに生成された番号を取得またはtupleから選択するのではなく、単に全体tupleを印刷しているされていません。

関連する問題