信息管理系统的验证码模块(python实现)
使用random.sample(s,k)方法
#验证码功能
import random
def codecheck():
s = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
while True:
rand_list = random.sample(s, 4) #随机从0~9中导入四个数字,存储在rand_list里面(可以包含大小写字母,改动主函数中列表S的元素即可)
str1 = [str(n) for n in rand_list] #将rand_list中的int型全部转换为str型,并存储在str1里面
#不能直接使用join方法将rand_list直接转换合并为一个字符串,原因略
code = ''.join(str1) #将str1中元素合并成一个字符串
print('验证码:%s'%code)
input1 = input("请输入验证码:")
if input1 == code: #比对两个字符串的内容
print("验证成功")
break #成功,跳出
else:
print("验证失败")
PS:sample这个方法直接从列表里挑选指定个数的元素随机输出,个人认为比较方便,也可以在列表里添加大小写字母,以及符号生成混合验证码。
PPS:可以直接在列表里把数字以字符串类型存放,免去了上面代码中将列表rand_list中元素放入列表str1并转换为字符串类型的步骤