菜鸟笔记
提升您的技术认知

python生成随机字符串-ag真人游戏

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

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

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

3.产生随机手机号

4.产生随机n位的数字

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

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

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

定义一个字符数据源的数组,要产生多长的字符串就循环调用多少次random.randint(0,n),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(30))

二:使用random.choice随机选择,需要多少长度就随机多少次

这里补充以下choice的用法:

random.choice() 在参数中随机产生返回一个对象 参数可以使list,也可以是string、元祖

import random

random.choice([1, 2, 3, 5, 9]) #返回5

random.choice('a string') #返回n

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)

对于第5中产生随机n以内的数字,直接使用random.randomint(0,n)即可

如,产生100以内的整数

print(random.randint(0,100))

三、使用faker库产生随机数据

有时我们测试用例中会用到一些测试数据,比如人员信息(姓名、地址、邮箱、电话),可能姓名、地址这种不太好随机,生产数据又需要做脱敏处理

faker提供的强大的随机能力,支持生成多种语言的随机信息(姓名、地址、邮箱、电话、密码、一段文字、一句话等待),非常好用

from faker import faker
faker = faker(locale='zh_cn')
for i in range(10):
    print(faker.name() ',' faker.address() ',' faker.email() ',' faker.phone_number())
print(faker.password())

结果

faker使用参考:

https://www.coonote.com/python-note/python-faker.html

网站地图