Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 两次滚动随机骰子_Python_Random - Fatal编程技术网

Python 两次滚动随机骰子

Python 两次滚动随机骰子,python,random,Python,Random,我需要运行两次随机6边骰子,并返回它们的总和。我不确定这是否正确,但我不认为正确,我仍在学习python,所以当涉及到这类东西时,我是相当新的 import random def roll_die(): roll1 = random.randint(1,6) roll2 = random.randint(1,6) total = roll1 + roll2 return total 之后应该调用函数:print roll\u die()。有关更多信息,请使用

我需要运行两次随机6边骰子,并返回它们的总和。我不确定这是否正确,但我不认为正确,我仍在学习python,所以当涉及到这类东西时,我是相当新的

import random

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

    return total

之后应该调用函数:
print roll\u 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
当然,你的条目应该不同于我的条目。

它有效

通过调用以下命令初始化随机生成器也是最佳做法:

random.seed()
在脚本的开头,即使它不是必需的,省略它也不是错误

如果要测试它,请添加以下内容:

print(roll_die())

在脚本结束时,为了打印结果,由于return关键字没有在屏幕上打印任何内容,因此它只用于输出函数的结果。

@wiso,错过了
def roll\u die
行?是什么让你相信它不正确,你测试过你的假设吗?我觉得不错。提示:将函数roll_die()重命名为roll_dice()。出于某种原因,我第一次测试时认为它不正确,它给了我一个错误,但我更改了一行,它工作正常,谢谢大家,很抱歉浪费了时间:P@Shmoe,这可能是一个基本问题,但它写得很清楚,写得很好,可能对以后的人有所帮助,所以这不是浪费时间。请确保您接受问题的答案。我不同意显式调用random.seed()是一种好的做法,除非需要。只有在每次需要随机调用时才调用它,这是一种不好的做法。我没有说这是一种不好的做法。我说这不是个好习惯。我想说的是,在最初的问题中,不需要使用random.seed,这很好。如果有人想向random.seed()添加一个no-args调用,这并没有错,只是额外的代码。很抱歉,我误解了。嗯,在这么小的脚本中,它是没有用的,我同意。当在程序启动时调用seed()时,它几乎没有影响(取决于环境计时因素),但当需要更强的随机化效果时,在函数开头调用seed()非常有用,因为绝大多数系统随机函数都使用伪随机生成器算法,这会带来冗余(如果使用不同的种子调用比使用时间戳调用更好)当我刚开始使用时,我花了数周时间试图理解我在这种随机类型中发现的冗余。