python 在指定范围内随机生成不重复的n个数实例

yizhihongxing

针对指定范围内随机生成不重复的n个数的问题,下面提供几种实现方法。

方法一:使用 random.sample()

Python 的 random 模块提供了一个 sample() 方法,可以在指定范围内随机生成不重复的 n 个数。

import random

start_num = 1   # 范围起始值
end_num = 100   # 范围终止值
n = 5           # 随机生成的数字个数

num_list = random.sample(range(start_num, end_num + 1), n)   # 生成 n 个不重复的随机数
print(num_list)

运行结果为:

[60, 16, 63, 74, 58]

上述代码中,range() 函数生成了从起始值到终止值的整数序列,加上 +1 是因为 range() 函数是左闭右开的,即不包含终止值,最终生成的序列包含起始值和终止值。接着,使用 random.sample() 函数在这个序列中生成了 n 个不重复的随机数。

方法二:使用 numpy.random.choice()

除了使用 random.sample() 方法外,还可以使用 NumPy 库中的 random.choice() 方法生成不重复的随机数序列。

import numpy as np

start_num = 1   # 范围起始值
end_num = 100   # 范围终止值
n = 5           # 随机生成的数字个数

num_list = np.random.choice(range(start_num, end_num + 1), n, replace=False)   # 生成 n 个不重复的随机数
print(num_list)

运行结果为:

[90 64 66  1 86]

上述代码中,np.random.choice() 函数的 replace 参数设置为 False,表示生成的数字不重复。

示例说明

假设现在需要随机生成包含大小写字母和数字在内的验证码,需要在这个范围内随机生成 8 个不重复的字符,可以使用如下代码:

import random
import string

chars = string.ascii_letters + string.digits  # 验证码范围大小写字母和数字
n = 8                                        # 随机生成字符的个数

code = ''.join(random.sample(chars, n))  # 随机生成 n 个不重复的字符
print(code)

运行结果为:

51O8jluT

在这个示例中,首先使用了 string.ascii_letters 和 string.digits 来定义验证码的范围(大小写字母和数字),然后使用 random.sample() 方法从此范围中随机生成了 8 个不重复字符,最后使用 ''.join() 将列表转化成字符串。这样就完成了一个含有大小写字母和数字的验证码的生成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 在指定范围内随机生成不重复的n个数实例 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python DNS查询放大攻击实现原理解析

    当攻击者利用某些手段让 DNS Resolver 执行了错误的 DNS 解析时,就会导致 DNS 查询放大攻击。攻击者通过伪造源 IP 和恶意构造查询报文,欺骗 DNS Resolver 向被攻击的服务器发送大量查询请求,导致被攻击服务器带宽资源不足。 攻击者通常会使用无保护的 DNS Resolver 来进行攻击,这样就可以控制 DNS Resolver …

    python 2023年6月2日
    00
  • python实现中文分词FMM算法实例

    下面是详细讲解“Python实现中文分词FMM算法实例”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 FMM算法是一种基于正向最大匹配的中文分词算法,其基本思想是从左到右扫描待分词文本,每次取出最长的词进行匹配,直到扫描完整个文本。具体步骤如下: 从左到右扫描待分词文本; 取出最长的词进行匹配; 如果匹配成功,则将该词作为分词结果; …

    python 2023年5月14日
    00
  • python的列表List求均值和中位数实例

    Python列表(List)求均值和中位数实例 在Python中,列表(List)是一种常用的数据类型,它可以存储多个元素,并且这些元素可以是不同的数据类型。本文将详细讲解Python中列表(List)求均值和中位数的实现方法,包括使用内置函数和手动计算两种方法。 方法一:使用内置函数 Python中有内置函数可以用于计算列表的均值和中位数,分别是mean(…

    python 2023年5月12日
    00
  • python+pyqt5实现24点小游戏

    一、介绍 24点小游戏是一种常见的数学游戏,要求玩家在给定的4个数字中选出任意3个数字,通过加减乘除的运算使得运算结果等于24。本文介绍如何使用Python和PyQt5框架实现24点小游戏。 二、实现步骤 安装PyQt5 在开始编写代码之前,需要安装PyQt5框架以便使用Qt Designer设计PyQt5窗口。安装方法: pip install PyQt5…

    python 2023年6月3日
    00
  • Python3基础语法知识点总结

    Python3基础语法知识点总结 前言 Python是一门非常流行的编程语言,广泛应用于数据科学、人工智能、Web开发、自动化等领域。本文主要介绍Python3语法知识点,适用于Python初学者和需要回顾Python3基础的人员。 目录 数据类型 变量和赋值 条件语句 循环语句 函数 模块 1. 数据类型 Python3内置了多种数据类型,包括数字、字符串…

    python 2023年5月13日
    00
  • Python生成词云的实现代码

    下面我将介绍Python生成词云的完整攻略。 一、词云生成原理 词云生成的主要原理是根据给定的文本,将其中的关键词提取出来,再根据它们在文本中出现的频率和重要程度,生成一个具有良好视觉效果的“词云图”。 在Python中,我们可以使用第三方库wordcloud来生成词云。 二、词云生成流程 准备文本数据。 在生成词云之前,先需要准备好文本数据。这里我们以《红…

    python 2023年5月20日
    00
  • python 实现UTC时间加减的方法

    下面是Python实现UTC时间加减的方法的完整攻略。 1. 了解UTC时间和Python中的时间模块 UTC时间是“协调世界时”的缩写,是世界上标准的时间。与之相对的,各个地区的所采用的时间则可能有所差异。在Python中,我们可以通过内置的时间模块datetime来对时间进行操作,包括对UTC时间的操作。 2. 使用datetime.timedelta进…

    python 2023年6月2日
    00
  • 如何在Python中删除Redis数据库中的数据?

    以下是在Python中删除Redis数据库中的数据的完整使用攻略。 使用Redis数据库的前提条件 在使用Python连接Redis数据库之前,需要确保已经安装Redis数据库,并已经启动Redis,同时需要安装Python的Redis动redisy。 步骤1:导入模块 在Python中使用redis模块连接Redis数据库。以下是导入redis模块的本语法…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部