如何在Python中生成介于0和9(含)之间的随机整数?
例如,0
、1
、2
、3
、4
、5
、6
、7
、8
、9
如果需要连续的数字,randint
或 randrange
可能是最好的选择,但如果你的序列中有几个不同的值(例如一个 list
),你也可以使用choice
:
>>> import random
>>> values = list(range(10))
>>> random.choice(values)
5
choice
函数也适用于从不连续的样本中选择一个元素:
>>> values = [1, 2, 3, 5, 7, 10]
>>> random.choice(values)
7
如果你需要加密强度,Python 3.6及更高版本中也有一个secrets.choice
:
>>> import secrets
>>> values = list(range(10))
>>> secrets.choice(values)
2
random.sample
。如果需要重复选择,可以使用带有 choice
的列表推导式:例如,对于包含 3 个随机值的列表,可以使用 [choice(values) for _ in range(3)]
。 - MSeifert如果您想使用numpy,则使用以下代码:
import numpy as np
print(np.random.randint(0,10))
>>> import random
>>> random.randrange(10)
3
>>> random.randrange(10)
1
>>> [random.randrange(10) for x in range(10)]
[9, 0, 4, 0, 5, 7, 4, 3, 6, 8]
您可以尝试从Python中导入random模块,并让它在九个数字之间进行选择。这非常基础。
import random
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
如果您将来要使用计算机选择的值,则可以尝试将其放入变量中,但如果不需要,请使用print函数:
choice = random.choice(numbers)
print(choice)
生成0到9之间的随机整数。
import numpy
X = numpy.random.randint(0, 10, size=10)
print(X)
输出:
[4 8 0 4 9 6 9 9 0 7]
最好的方法是使用import Random函数。
import random
print(random.sample(range(10), 10))
或者不使用任何库导入:
n={}
for i in range(10):
n[i]=i
for p in range(10):
print(n.popitem()[1])
这里的popitems从字典n
中删除并返回一个任意值。
random.sample
是另一个可以使用的函数。
import random
n = 1 # specify the no. of numbers
num = random.sample(range(10), n)
num[0] # is the required number
float
值。要获取纯整数:num = int(round((b-a)*random.random(),1)) + a
- WestCoastProjects来自 random 模块的文档页面:
警告:本模块的伪随机生成器不应用于安全目的。如果需要一个加密安全的伪随机数生成器,请使用 os.urandom() 或 SystemRandom。
random.SystemRandom 是在 Python 2.4 中引入的,被认为是加密安全的。它仍然可以在 Python 3.7.1 中使用,这是当前版本。
>>> import string
>>> string.digits
'0123456789'
>>> import random
>>> random.SystemRandom().choice(string.digits)
'8'
>>> random.SystemRandom().choice(string.digits)
'1'
>>> random.SystemRandom().choice(string.digits)
'8'
>>> random.SystemRandom().choice(string.digits)
'5'
可以使用 range
代替 string.digits
,根据其他答案可能会结合列表推导式混合使用。根据需要进行组合。
我想和quantumrand
一起回答这个问题,它使用了ANU的量子号生成器。不幸的是,这需要互联网连接,但如果你关心数字的“随机程度”,那么这可能很有用。
https://pypi.org/project/quantumrand/
例子
import quantumrand
number = quantumrand.randint(0, 9)
print(number)
输出:4
文档中有很多不同的示例,包括骰子滚动和列表选择器。
random.randrange(10)
。 - WestCoastProjects
>>> from random import SystemRandom >>> cryptogen = SystemRandom() >>> [cryptogen.randrange(3) for i in range(20)]
请注意,以上代码仅供参考,不应用于生产环境。 - Charlie Parkerimport random; print(random.randint(0, 9))
- Charlie Parker