python生成随机字符串

随机字符的场景大致有以下场景:

1.产生随机字符串 无数字

2.产生随机长度的字符串 无数字、有数字

3.产生随机手机号

4.产生随机n位的数字

5.产生随机n以内的数字

随机使用的两种思路如下:

一:使用random.randint(0,n)

我们有一个包含多个字符的数组(或称为数据源数组),想要生成一个特定长度的字符串。为了实现这一点,我们将编写一个程序,它会根据所需的字符串长度执行相应次数的循环。在每次循环中,程序会调用random.randint(0, n-1)函数来生成一个随机数,其中n是数据源数组的长度。这个随机数将被用作索引,从数据源数组中选择一个字符。然后,程序会将选出的字符添加到结果字符串中。循环结束后,程序将返回这个由随机字符拼接而成的字符串。

def generate_random_str(randomlength=16):"""生成一个指定长度的随机字符串"""random_str =''base_str ='ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'length =len(base_str) -1for i in range(randomlength):random_str +=base_str[random.randint(0, length)]return random_str
if __name__ == '__main__':print(generate_random_str(15))
二:使用random.choice来随机选择元素,如果需要生成一个长度为n的字符串,我们可以从给定的字符数据源中随机选择n次字符。

关于random.choice()的用法,该函数接受一个序列(如列表、元组或字符串)作为参数,并随机返回该序列中的一个元素。

以下是使用random.choice来实现所需功能的重新表述:

要生成一个由随机字符组成的字符串,其长度由变量n指定,我们可以从给定的字符数据源(比如一个包含所有可能字符的列表或字符串)中,使用random.choice()函数随机选择n个字符,并将这些字符连接起来。

例如,假设我们有一个字符列表作为数据源:

import random  # 假设的字符数据源  
characters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']  # 需要的字符串长度  
n = 10  # 使用列表推导式和random.choice生成随机字符串  
random_string = ''.join(random.choice(characters) for _ in range(n))  # 打印生成的随机字符串  
print(random_string)
def getRandom(randomlength=16):"""生成一个指定长度的随机字符串"""digits=0123456789ascii_letters=abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZstr_list =[random.choice(digits +ascii_letters) for i in range(randomlength)]random_str =''.join(str_list)return random_str

最后,使用了dict字典实现按照mode按使用场景生成不同的字符串

def getRandomString(mode="mixDigitLetter", len=15):#按照不同模式生成随机字符串upperLetter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"lowerLetter = "abcdefghigklmnopqrstuvwxyz"digits="0123456789"wpecialCharacters = "!@#$%&_-.+="randomMap ={"digit":digits,"upper":upperLetter,"lower":lowerLetter,"mixDigitLetter":upperLetter+lowerLetter+digits,"mixLetter":upperLetter+lowerLetter,"mixDigitLetterCharcter":upperLetter+lowerLetter+digits+wpecialCharacters}return getRandom(randomMap[mode],len)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《21天学通C++》(第十三章) 类型转换运算符

1.为什么需要类型转换? ①兼容不同类型: 在C中不同类型的数据不能直接进行运算,如需要则要进行类型转换 ②指针转换: 在处理指针时,经常需要把一个类型的指针转化为另一个类型的指针 ③与C语言兼容: C兼…

[1678]旅游景点信息Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 旅游景点信息管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql…

【信息系统项目管理师知识点速记】进度管理:排列活动顺序

10.5 排列活动顺序 排列活动顺序是识别和记录项目活动之间关系的过程,主要作用是定义工作之间的逻辑顺序,以在既定的所有项目制约因素下获得最高的效率。本过程需要在整个项目期间开展。 10.5.1 输入 项目管理计划: 进度管理计划:规定了排列活动顺序的方法、准确度和其他…

数据结构:图

数据结构:图 前言 在自动化程序分析中,图和树的一些算法起到了至关重要的作用,所以在开始自动化程序分析的研究前,我用了两天复习了一遍数据结构中的图。本章主要内容有图的基本概念,图的存储和图相关的经典算法&…

OpenCV(二)—— 车牌定位

从本篇文章开始我们进入 OpenCV 的 Demo 实战。首先,我们会用接下来的三篇文章介绍车牌识别 Demo。 1、概述 识别图片中的车牌号码需要经过三步: 车牌定位:从整张图片中识别出牌照,主要操作包括对原图进行预处理、把车牌从整图…

数据结构--顺序表经典OJ题

例1:合并有序顺序表 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意&#xff…

测试开发工具开发 -JMeter 函数二次开发

在JMeter中开发自定义函数是一个常见的需求,允许我们扩展JMeter的功能以适应特定的测试需求。自定义函数可以用来处理数据,生成输出,或者执行特定的运算。通过JMeter函数二次开发可以帮我们解决实际测试过程中造数难的问题 用过JMeter的同学…

JAVASE->数据结构|顺序表底层逻辑

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 目标: 1. 什么是 List 2. List 常见接口介绍 3. …

java并发编程-AQS介绍及源码详解

介绍 AQS 的全称为 AbstractQueuedSynchronizer ,就是抽象队列同步器。 从源码上可以看到AQS 就是一个抽象类,它继承了AbstractOwnableSynchronizer,实现了java.io.Serializable接口。 public abstract class AbstractQueuedSynchronizere…

信号与线性系统 1绪论

信号 信号是随时间变化的某种物理量(狭义) 本课程中,信号用 函数(而且是一维函数)表示 连续 离散 信号分类 确定与随机:是否能以确定的时间函数表示离散与连续:是用全体实数还是特定整数来描述…

普乐蛙景区vr体验馆VR游乐场设备身历其境体验

小编给大家推荐一款gao坪效产品【暗黑战车】,一次6人同乘,炫酷外观、强大性能和丰富内容适合各个年龄层客群,紧张刺激的VR体验让玩家沉浸在元宇宙的魅力中,无论是节假日还是平日,景区商场助力门店提高客流量和营收~ ◆…

苹果和OpenAI再续前缘,iOS 18会是颠覆级的吗?|TodayAI

据彭博社最新报道,苹果公司已经与人工智能领域的先锋企业OpenAI重启了对话,双方目前正在讨论一项可能的合作,以将OpenAI的生成式人工智能技术整合到苹果即将推出的iOS 18操作系统中。这一举措表明,苹果正加速其在人工智能技术上的…

Acwing 818. 数组排序

给定一个长度为 n n n的数组 a a a以及两个整数 l l l和 r r r,请你编写一个函数,void sort(int a[], int l, int r),将 a [ l ] ∼ a [ r ] a[l]∼a[r] a[l]∼a[r]从小到大排序。 输出排好序的数组 a。 输入格式 第一行包含三个整数 n &…

Go Web 开发基础【用户登录、注册、验证】

前言 这篇文章主要是学习怎么用 Go 语言(Gin)开发Web程序,前端太弱了,得好好补补课,完了再来更新。 1、环境准备 新建项目,生成 go.mod 文件: 出现报错:go: modules disabled by G…

【JavaEE网络】网络编程及其应用概述

目录 面向字节流粘包问题 TCP异常情况TCP/UDP对比 网络层重点协议IP协议IP地址 面向字节流 粘包问题 在面向字节流的情况下,会产生一些其他的问题:粘包问题,这里“粘”的是“应用层数据报”,通过TCP read/write的数据&#xff0…

小米消金持续发力,全面强化金融消费者权益保护措施

近年来,电信网络欺诈手段层出不穷,深度伪造等互联网技术被误用,导致欺诈行为更加隐蔽。重庆小米消费金融有限公司(以下简称“小米消金”),作为一家持牌消费金融公司,深知保护消费者财产安全的重…

AI手机,走入小径分岔的花园

博尔赫斯在他的成名作《小径分岔的花园》里,描述了一种奇妙的世界观:一个可能性被选择之后,出现了许多不同的后世,许多不同的时间。 在现实世界中,选择不会如此神奇。但站在岔路口的抉择,也一定会带来结果的…

Mysql的关联查询以及语句

一、mysql的连接查询 1、等值连接 这里是三张表的等值连接 select rp.role_id,rp.permission_id from role_permission rp, role r, permission p where rp.role_idr.id and rp.permission_idp.id 2、内连接: 角色:系统管理员 是否拥有权限&#xf…

实验七 SJK数据库定义与操纵

实验题目 实验七 SJK数据库定义与操纵 实验时间 2023.5.17 实验地点 软件工程基础实验室 实验课时 2 实验目的 ​了解并掌握数据库定义与操纵的知识并能熟练应用 实验要求 ​熟练掌握和使用PL-SQL建立数据库基本表,使用PL/SQL developer操作数据库&a…

C++:现代类型转换

C:现代类型转换 C/C的旧式类型转换C的现代类型转换静态类型转换 static_cast重新解释转换 reinterpret_cast常量类型转换 const_cast动态类型转换 dynamic_cast C/C的旧式类型转换 在C语言中,类型转换被分为显式和隐式,常见的类型转换如下&a…