2011-11-07 10 views
0

ランダムな6面ダイスを2回実行し、それらの合計を返す必要があります。私はこれが正しいかどうか分からないが、私はそれがそうではないと思う、私はまだPythonを学んでいるので、この種のものになるとかなり新しい。ランダムなダイスを2回ローリングPython

import random 

def roll_die(): 
    roll1 = random.randint(1,6) 
    roll2 = random.randint(1,6) 
    total = roll1 + roll2 

    return total 
+0

はい、それは正しいです。 –

+0

@wiso、 'def roll_die'行を見逃しましたか? –

+2

あなたはそれが正しくないと信じて、あなたの前提をテストしましたか? – brc

答えて

2

これは機能します。それが必要ない場合でも、あなたのスクリプトの先頭に

random.seed() 

、それを省略するのは間違いではありません。

それを呼び出すことによっても、乱数発生器を初期化するためのベストプラクティスです。 リターンキーワードが画面に何も表示されませんので、それは、結果を印刷するには、スクリプトの最後に

print(roll_die()) 

:あなたはそれをテストしたい場合は

は、以下を追加します。関数の結果を出力するためにのみ使用されます。

+0

私はrandom.seed()を明示的に呼び出すことは、必要な場合を除いて、良い習慣であると考えています。 – Buttons840

+0

あなたがランダムを必要とするたびに呼び出すのは悪い習慣です。 – AlQafir

+0

私はそれが悪い習慣ではないと言っていませんでした。私はそれが良い習慣ではないと言った。私が言っているのは、random.seedへの呼び出しがないという元の質問にあります。 random.seed()に引数なしの呼び出しを追加したい場合、それは間違っているわけではなく、ちょうど余分なコードです。 – Buttons840

0

あなたはその後、あなたの関数を呼び出す必要があります。print roll_die()

0

これは正確に何をしたい行います。詳細情報については、対話インタプリタでhelp(something)を使用します。

>>> import random 
>>> help(random.randint) 
Help on method randint in module random: 

randint(self, a, b) method of random.Random instance 
    Return random integer in range [a, b], including both end points. 

また、ブルートフォース方式でこれをテストすることができます。もちろん

>>> valid_numbers = list(range(2, 13)) # You can just use range(2, 13) in python 2.x 
>>> valid_numbers 
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 
>>> while len(valid_numbers) > 0: 
...  roll = roll_die() 
...  if roll in valid_numbers: 
...   print(roll) 
...   valid_numbers.remove(roll) 
... 
4 
10 
5 
7 
6 
8 
11 
9 
3 
2 
12 

は、あなたのエントリは私よりも異なっている必要があります。

関連する問題