目录
一、题目描述
写一个函数,生成指定长度的验证码,验证码由英文字母和数字构成
二、解析
此题为随机产生n位的验证码,而且要求为字母加数字的组合,此时就需要用到随机函数random了;先创建一个列表,将字母和数字全部存入其中,然后再调用函数获取。
三、random用法:
产生随机数需要导入random库 1.产生n-m范围内的一个随机数:random.randint(n,m),n和m均可以取 2.产生0到1之间的浮点数: random.random() 3.产生n---m之间的浮点数: random.uniform(1.1,5.4) 4.产生从n---m间隔为k的整数: random.randrange(n,m,k) 5.从序列中随机选取一个元素: random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) 6.在一些特殊的情况下可能对序列进行一次打乱操作: random.shuffle([1,3,5,6,7]) 7. 从序列seq中选择n个随机且独立的元素:sample(seq, n)
四、源码
import random
def generate(n):
li_code = []
for i in range(65,91):#大写字母A-Z
li_code.append(chr(i))#使用chr方法,可以获取一个编码对应的字符
# 使用ord方法,可以获取一个字符对应的编码
for j in range(97,123):#小写字母a-z
li_code.append(chr(j))
for k in range(0,10):#数字0-9
li_code.append(chr(k))
code = random.sample(li_code, n)#从列表中选择n个随机且独立的元素放入列表中
ran_code = "".join(code)#可以把列表或者元组快速的转变成为字符串,并且以指定的字符分隔
'''
txt = '_'
print(txt.join(['hi','hello','good'])) #hi_hello_good
print(txt.join(('good','hi','hello'))) #good_hi_hello
'''
return ran_code
#sample(seq, n) 从序列seq中选择n个随机且独立的元素
if __name__ == '__main__':
n = int(input('请输入验证码长度:'))
print(generate(n))