如何在Python中生成0到9(含)之间的随机整数?

例如, 0123456789


#1楼

import random
print(random.randint(0,9))

random.randint(a, b)

返回一个随机整数N,使得a <= N <= b。

文档: https : //docs.python.org/3.1/library/random.html#random.randint


#2楼

from random import randintx = [randint(0, 9) for p in range(0, 10)]

这将生成范围为0到9(包括0和9)的10个伪随机整数。


#3楼

通过random.shuffle试试这个

>>> import random
>>> nums = [x for x in range(10)]
>>> random.shuffle(nums)
>>> nums
[6, 3, 5, 4, 0, 1, 2, 9, 8, 7]

#4楼

试试这个:

from random import randrange, uniform# randrange gives you an integral value
irand = randrange(0, 10)# uniform gives you a floating-point value
frand = uniform(0, 10)

#5楼

尝试:

from random import randrange
print(randrange(10))

更多信息: http : //docs.python.org/library/random.html#random.randrange


#6楼

secrets模块是Python 3.6中的新功能。 这比用于加密或安全性使用的random模块更好。

要在0-9的包含范围内随机打印一个整数:

from secrets import randbelow
print(randbelow(10))

有关详细信息,请参阅PEP 506 。


#7楼

如果你想使用numpy,那么使用以下内容:

import numpy as np
print(np.random.randint(0,10))

#8楼

选择数组的大小(在本例中,我选择的大小为20)。 然后,使用以下内容:

import numpy as np
np.random.randint(10, size=(1, 20))

您可以期望看到以下形式的输出( 每次运行时都会返回不同的随机整数;因此您可以预期输出数组中的整数与下面给出的示例不同 )。

array([[1, 6, 1, 2, 8, 6, 3, 3, 2, 5, 6, 5, 0, 9, 5, 6, 4, 5, 9, 3]])

#9楼

random.sample是另一个可以使用的

import random
n = 1 # specify the no. of numbers
num = random.sample(range(10),  n)
num[0] # is the required number

#10楼

最好的方法是使用导入随机功能

import random
print(random.sample(range(10), 10))

或没有任何库导入:

n={}
for i in range(10):n[i]=ifor p in range(10):print(n.popitem()[1])

这里popitems从字典n删除并返回一个任意值。


#11楼

在连续数字的情况下, randintrandrange可能是最佳选择,但如果序列中有几个不同的值(即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

#12楼

对于Python 3.6,我有更好的运气

str_Key = ""
str_RandomKey = ""
for int_I in range(128):                                                                                    str_Key = random.choice('0123456789')str_RandomKey = str_RandomKey + str_Key

只需添加“ABCD”和“abcd”或“^!〜= - > <”等字符即可更改要拉出的字符池,更改范围以更改生成的字符数。


#13楼

>>> 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]

#14楼

虽然许多帖子演示了如何获得一个随机整数,但原始问题询问如何生成随机整数s (复数):

如何在Python中生成0到9(含)之间的随机整数?

为清楚起见,这里我们演示如何获得多个随机整数。

特定

>>> import randomlo = 0
hi = 10
size = 5

多个随机整数

# A
>>> [random.randint(lo, hi) for _ in range(size)]
[9, 7, 0, 7, 3]
# B
>>> [random.randrange(lo, hi) for _ in range(size)]
[8, 3, 6, 8, 7]
# C
>>> lst = list(range(lo, hi))
>>> random.shuffle(lst)
>>> [lst[i] for i in range(size)]
[6, 8, 2, 5, 1]
# D
>>> [random.choice(range(lo, hi)) for _ in range(size)]
[2, 1, 6, 9, 5]

随机整数的样本

# E
>>> random.choices(range(lo, hi), k=size)
[3, 2, 0, 8, 2]
# F
>>> random.sample(range(lo, hi), k=size)
[4, 5, 1, 2, 3]

细节

一些帖子演示了如何本机生成多个随机整数。 1以下是解决隐含问题的一些选项:

  • random.randint返回一个随机整数N ,使得a <= N <= b
  • Brandint(a, b+1) random.randrange别名
  • Crandom.shuffle将一个序列random.shuffle到位
  • Drandom.choice从非空序列返回一个随机元素
  • Erandom.choices从群体中返回k选择(替换,Python 3.6+)
  • Frandom.sample返回来自总体的k唯一选择(无替换): 2

以下是标准库和Numpy中一些随机函数的比较:

| | random                | numpy.random                     |
|-|-----------------------|----------------------------------|
|A| randint(low, high)    | randint(low, high)               |
|B| randrange(low, high)  | randint(low, high)               |
|C| shuffle(seq)          | shuffle(seq)                     |
|D| choice(seq)           | choice(seq)                      |
|E| choices(seq, k)       | choice(seq, size)                |
|F| sample(seq, k)        | choice(seq, size, replace=False) |

您还可以快速将Numpy中的许多发行版之一转换为随机整数样本。 3

例子

>>> np.random.normal(loc=5, scale=10, size=size).astype(int)
array([17, 10,  3,  1, 16])>>> np.random.poisson(lam=1, size=size).astype(int)
array([1, 3, 0, 2, 0])>>> np.random.lognormal(mean=0.0, sigma=1.0, size=size).astype(int)
array([1, 3, 1, 5, 1])

1即@John Lawrence Aspden,@ ST Mohammed,@ SiddTheKid,@ user14372,@ zangw,et al。2 @prashanth提到这个模块显示一个整数。3由@Siddharth Satpathy演示


#15楼

生成0到9之间的随机整数。

import numpy
X = numpy.random.randint(0, 10, size=10)
print(X)

输出:

[4 8 0 4 9 6 9 9 0 7]

#16楼

我会尝试以下之一:

1.> numpy.random.randint

import numpy as np
X1 = np.random.randint(low=0, high=10, size=(15,))print (X1)
>>> array([3, 0, 9, 0, 5, 7, 6, 9, 6, 7, 9, 6, 6, 9, 8])

2.> numpy.random.uniform

import numpy as np
X2 = np.random.uniform(low=0, high=10, size=(15,)).astype(int)print (X2)
>>> array([8, 3, 6, 9, 1, 0, 3, 6, 3, 3, 1, 2, 4, 0, 4])

3.> random.randrange

from random import randrange
X3 = [randrange(10) for i in range(15)]print (X3)
>>> [2, 1, 4, 1, 2, 8, 8, 6, 4, 1, 0, 5, 8, 3, 5]

4.> random.randint

from random import randint
X4 = [randint(0, 9) for i in range(0, 15)]print (X4)
>>> [6, 2, 6, 9, 5, 3, 2, 3, 3, 4, 4, 7, 4, 9, 6]

速度:

►np.random.randint最快的 ,其次是np.random.uniformrandom.randrangerandom.randint最慢的

►nap.random.randintnp.random.uniform 都比random.randrange和random.randint 快得多 8到12倍)。

%timeit np.random.randint(low=0, high=10, size=(15,))
>> 1.64 µs ± 7.83 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)%timeit np.random.uniform(low=0, high=10, size=(15,)).astype(int)
>> 2.15 µs ± 38.6 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)%timeit [randrange(10) for i in range(15)]
>> 12.9 µs ± 60.4 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)%timeit [randint(0, 9) for i in range(0, 15)]
>> 20 µs ± 386 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

笔记:

1.> np.random.randint在半开区间[低,高]上生成随机整数。

2.> np.random.uniform在半开区间[低,高]上生成均匀分布的数字。

3.> random.randrange(stop)从范围(开始,停止,步骤)生成随机数。

4.> random.randint(a,b)返回随机整数N,使得a <= N <= b。

5.> astype(int)将numpy数组转换为int数据类型。

6.>我选择了size =(15,)。 这将给你一个长度= 15的numpy数组。


#17楼

这更像是一种数学方法,但它在100%的时间内起作用:

假设你想使用random.random()函数在ab之间生成一个数字。 要实现此目的,请执行以下操作:

num = (ba)*random.random() + a;

当然,您可以生成更多数字。


#18楼

从随机模块的文档页面:

警告:不应将此模块的伪随机生成器用于安全目的。 如果需要加密安全的伪随机数生成器,请使用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'

而不是string.digitsrange可以用于其他一些答案,或许可以理解。 根据您的需要混合搭配。

生成0到9之间的随机整数相关推荐

  1. java将0到9随机输出_生成0到9之间的随机整数

    回答(20) 2 years ago 对于您给出的示例(从0开始直到9的整数),最干净的解决方案如下: from random import randrange randrange(10) 2 yea ...

  2. 随机密码生成python_每日一课 | Python 中生成 0 到 9 之间的随机整数

    很少有Python示例向您展示如何生成0(含)和9(含)之间的随机整数0 1 2 3 4 5 6 7 8 9 1.randrange 1.1生成0到9之间的随机整数 #!/usr/bin/python ...

  3. python随机生成数字_Python 中生成 0 到 9 之间的随机整数

    很少有Python示例向您展示如何生成0(含)和9(含)之间的随机整数0 1 2 3 4 5 6 7 8 9 1.randrange 1.1生成0到9之间的随机整数 #!/usr/bin/python ...

  4. ios取两个数之间的随机小数_关于ios:生成0到1之间的随机浮点数

    我试图生成一个介于0和1之间的随机数.我一直在阅读有关arc4random()的信息,但是没有关于从中获取浮点数的任何信息. 我该怎么做呢? 不是重复项,这似乎是与浮点数明确相关的唯一问题. [0,1 ...

  5. 使用Math 类 和 Random类 两种方式生成 20 到30之间的随机整数---java基础

    package com.henu;import java.util.Random;public class Test05 {public static void main(String[] args) ...

  6. 编写程序,生成包含1000个0到100之间的随机整数,并统计每个元素的出现次数

    import random x=[random.randint(0,100) for i in range(1000)] d=set(x) for v in d:print(v,':',x.count ...

  7. Java黑皮书课后题第7章:*7.7(统计个位数的数目)编写一个程序,生成0和9之间的100个随机整数,然后显示每一个数出现的次数

    *7.7(统计个位数的数目)编写一个程序,生成0和9之间的100个随机整数,然后显示每一个数出现的次数 题目 题目描述 破题 代码 运行示例 题目 题目描述 *7.7(统计个位数的数目)编写一个程序, ...

  8. python随机产生100个整数二进制_PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。...

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  9. 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 NN 个 1 到 1000 之间的随机整数(N \leq 100N≤100),对于其中重复的数字,只保留一个,把其余相

    自己用了非常朴素的方法将本题解了出来. 三个for循环和两个sort,哈哈哈,xswl. 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 NN 个 1 到 1000 ...

最新文章

  1. C++中的修饰符类型
  2. 清华数为大数据应用低代码开发工具DWF 2021成长回顾
  3. IMI装系统装到一半出错?
  4. ●洛谷P3168 [CQOI2015]任务查询系统
  5. SQL Server中count(*), count(col), count(1)的对比
  6. 计算机基础16秋在线作业,北大16秋《计算机基础与应用-第二组》在线作业.doc
  7. comboBox.DataSource绑定
  8. python自建模块导入_Python模块的使用及自建模块的导入方法举例
  9. 单片机小白学步系列(〇)序
  10. mysql 大小端_go语言中大小端模式的个人理解
  11. Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
  12. 域控制器的常规卸载,Active Directory系列之十三
  13. 四种插入数据的MySQL语句比较
  14. vue写一个简单的警察抓小偷的打字游戏
  15. java udp转发_【Java】UDP发包的简单实现
  16. 旭凤锦覓虐心 恋只愿共赴鸿蒙,【香蜜同人】所爱隔山海(旭凤X锦觅X润玉)
  17. 10个屌炸天的设计网址导航带你嗨翻科技设计界 #精选前端开发设计素材
  18. ios版本与xcode版本
  19. js阿拉伯数字转中文汉字小写 支持到12位
  20. 小米手机扩容教程_手把手教你把手机16G内存升级128G 【图文教程】

热门文章

  1. 利用正则计算输入内容的长度
  2. 浅析Windows计算机中丢失SETUPAPI.dll的问题
  3. 查看mysql中sql语句执行时间
  4. Hive分区(静态分区+动态分区)
  5. 使用百度富文本编辑器UEditor碰到的问题
  6. python实现刷博器(适用于新浪、搜狐)
  7. GridView结合Dropdownlist和Checkbox
  8. Oracle PL/SQL中的循环处理(sql for循环)
  9. 错误处理和调试2 - C++快速入门31
  10. 查看google chrome版本号及浏览器驱动下载