python生成随机字符串

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

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.csdn.net/tags/MtTaMgxsNjg1NjEyLWJsb2cO0O0O.html

  • 16
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python生成随机字符串的方法有多种。一种方法是通过random模块中的choice函数来从指定的字符集中选择随机字符进行拼接,如在函数getRandom中。该函数使用了digits和ascii_letters两个字符集,分别包含了0-9和a-z、A-Z的字符,通过循环调用random.choice函数来选择这些字符并进行拼接,生成一个指定长度的随机字符串。 另一种方法是通过循环调用random.randint函数来生成随机数,然后根据生成的随机数选择字符数据源数组中对应位置的字符进行拼接,如在函数generate_random_str中。该函数定义了一个字符数据源数组base_str,循环调用random.randint函数来生成0到数据源数组长度之间的随机数,然后通过这个随机数选择数据源数组中对应位置的字符进行拼接,最终生成一个指定长度的随机字符串。 这两种方法都可以用来生成随机字符串,具体选择哪种方法取决于个人喜好和具体需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python生成随机字符串](https://blog.csdn.net/wyy_a/article/details/121632646)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [python生成随机字符串_Python生成随机字符串](https://blog.csdn.net/cunchi4221/article/details/107475914)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值