python 生成随机字符串
最编程
2024-05-02 09:32:25
...
随机字符的场景大致有以下场景:
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) -1
for 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=0123456789
ascii_letters=abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
str_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)
上一篇: 开发新唐 nuc980/nuc972 3-官方源代码汇编
下一篇: 数据特征 (i)
推荐阅读
-
PostgreSQL] GIN 索引安装和使用 - 完全模糊匹配/数组匹配、PG 批量插入数以万计的随机生成数据、随机生成字符串/数组GIN 索引安装和使用 - 全模糊匹配/数组匹配,PG 批量插入数以万计的随机生成数据,随机生成字符串/数组
-
python 生成随机字符串
-
生成强随机数
-
Python3 统计字符串中出现次数最多的人名
-
在 c++ 中随机生成中文名称-有八种情况,即
-
贪婪算法在 Python、JavaScript、Java、C++ 和 C# 中的多种实现及其在硬币变化、分数骑士、活动选择和使用哈夫曼编码的最小生成树问题中的应用实例
-
使用 Python 脚本为 Vivado 生成 ROM 初始化文件(.coe 文件
-
Python3 字符串加密
-
Java 开发工具 - RandomName - 随机生成中文名称
-
python 批量压缩文件并生成唯一密码