用Python生成随机长度的字符串和随机长度的数字

生成一个指定长度的随机字符串

import random

def generate_random_str(randomlength=16):
    """
    生成一个指定长度的随机字符串
    """
    random_str = ''
    base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz,.'
    length = len(base_str) - 1
    for i in range(randomlength):
        random_str += base_str[random.randint(0, length)]
    return random_str

f=generate_random_str(32)
print (f)  

说明:

  • 1.f=generate_random_str(32)中32是字符串长度,这里需要输出32位长度的字符串,所以写32,如果需要其它长度只需要修改成自己想要的长度即可
  • 2.base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz,.' 是随机字符串的源字符串,如果需要其它的字符则只需要修改该变量的字符串内容即可

生成随机长度的数字:

第一种方法:

'''第一种方法,使用randint'''
from random import randint
print(randint(1000000000000000, 9999999999999999))  # randint is inclusive at both ends

说明:1000000000000000和9999999999999999表示的是16位的任意数字,如果你只需要3位数的,则只需要改成randint(100,999)即可

第二种方法:

from random import randint

def random_with_N_digits(n):
    range_start = 10**(n-1)
    range_end = (10**n)-1
    return randint(range_start, range_end)

# print(random_with_N_digits(2))
# print(random_with_N_digits(3))
print(random_with_N_digits(16))     #生成长度为16位的随机数字

  说明:random_with_N_digits(16)中的16是指要生成的随机数长度,可以改成自己想要的数字长度

第三种方法:

from random import randint
n = 16
print(''.join(["%s" % randint(0, 9) for num in range(0, n)]))

说明:n是数字长度,这里是16位长度的数字,如果需要其它长度的数字,则只需要将16改成想要的数字长度即可