2011-11-07 52 views
0

我需要运行一个随机的6面骰两次并返回它们的总和。我不确定这是否正确,但我不认为它是,我仍然在学习python,所以当谈到这种东西时我很新。滚动随机模两次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 

当然,你的参赛作品必须比我的不同。