我需要运行一个随机的6面骰两次并返回它们的总和。我不确定这是否正确,但我不认为它是,我仍然在学习python,所以当谈到这种东西时我很新。滚动随机模两次python
import random
def roll_die():
roll1 = random.randint(1,6)
roll2 = random.randint(1,6)
total = roll1 + roll2
return total
我需要运行一个随机的6面骰两次并返回它们的总和。我不确定这是否正确,但我不认为它是,我仍然在学习python,所以当谈到这种东西时我很新。滚动随机模两次python
import random
def roll_die():
roll1 = random.randint(1,6)
roll2 = random.randint(1,6)
total = roll1 + roll2
return total
它的工作原理。
这也是初始化随机生成的最佳实践,通过调用:
random.seed()
在脚本的开始,即使是没有必要的,它不是忽略它是错误的。
如果你想测试,添加以下内容:
print(roll_die())
在脚本的末尾,打印结果,因为回关键字不会在屏幕上显示任何信息,这是只用于让函数的结果出来。
我不同意明确调用random.seed()是很好的做法,除非需要。 – Buttons840
只有当你每次需要随机时调用它,这都是不好的做法。 – AlQafir
我没有说这是不好的做法。我说这不是好习惯。我说的是在原来的问题,没有打电话给random.seed,这很好。如果有人想给random.seed()添加一个无参数调用,这没有错,只是额外的代码。 – Buttons840
你应该后调用函数:print roll_die()
这将不正是你想要的。欲了解更多信息,在交互式解释使用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
当然,你的参赛作品必须比我的不同。
是的,这是对的 –
@wiso,错过了'def roll_die'行? –
是什么让你相信这是不正确的,并且你测试了你的假设? – brc