生成随机数,随机取值
前提:import random
例1: 生成20位字符串,由字母,数字组成且字母数字各至少1位,字母,数字的位数如何随机生成?
numer1 = random.randint(1, 19)
letter1 = 20-numer1
print(f"数字是{numer1}位,字母是{letter1}位")
import random
例1:
r = random.choice([1,2,3,4])
print(r)
import random
例1:从0-99抽取10个元素
numer1 = random.sample(range(100), 10)
print(numer1)
list1 = [1, 2, 3, 4, 5, 6]
random.shuffle(list1)
print(list1) # 比如[3, 5, 6, 2, 1, 4]
import random
例1: 在100-1000范围内随机生成3个能被5整除的数
r = [random.randrange(100, 1000, 5) for _ in range(3)]
print(r) # 返回能被5整除的数
例2:随机生成5个十位数字
r = [random.randrange(10,99) for _ in range(5)]
print(r)
例1:
结合string模块的字母属性和join方法进行合并
upp_str = ''.join([random.choice(string.ascii_letters) for _ in range(6)])
print(upp_str) # 比如hVFNue
# 根据题目要求,字母,数字需至少一位,故数字至少1位,至多5位
number1 = random.randint(1, 5)
# 根据数字个数,求字母个数
letter1 = 6-number1
# choice结合string的字母属性生成字母列表
letter_str = [random.choice(string.ascii_letters) for _ in range(letter1)]
# choice结合string的字母属性生成数字列表
number_str = [random.choice(string.digits) for _ in range(number1)]
# 对字母和数字列表合并
r = letter_str+number_str
# 打乱字母数字的顺序
random.shuffle(r)
# 列表内的元素拼接
print(''.join(r)) # 比如:X45K8K