- """
- 作者:白
- 时间:2018年1月8日
- 功能: 生成随机4位验证码(必须由两个2字母和2个数字组成)
- """
- import random
-
- def main():
- list_num = [1,2,3,4,5,6,7,8,9,0]
- list_str = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','s','t','x','y','z']
- veri_str = random.sample(list_str,2)
- veri_num = random.sample(list_num,2)
- veri_out = random.sample(veri_num + veri_str,4)
- veri_res = str(veri_out[0]) + str(veri_out[1]) + str(veri_out[2]) + str(veri_out[3])
- print(veri_res)
-
- if __name__ == '__main__':
- main()
这里有两个问题:
1、如何简化list_str 生成一个a-z的列表,这里我就用比较笨的方法一个一个列出来了
2、不知道python有没有一键式的函数,生成验证码的那种
如知道以上两个问题的,可以留言告诉我一下,不胜感激!~
对于上面的问题,经过昨天下午的测试和练习以不同函数分开的方法拼接而成,这样方便后面对于不同模块的使用。
版本二:
- """
- 作者:白
- 日期:2018年1月8日
- 功能:利用random/chr()/ord()生成一个4位随机数(包含大小写字母和数字)
- chr(x) 将一个整数转换为一个字符
- ord(x) 将一个字符转换为它的整数值
- """
- import random
- veri_list = []
- #通过chr()函数取随机大写字母A-Z
- def A_str():
- for i in range(4):
- veri_num1 = random.randint(65,90) #取值65-90随机一个整数
- veri_str1 = chr(veri_num1)
- veri_list.append(veri_str1)
-
- #通过chr()函数取随机小写字母a-z
- def a_str():
- for i in range(4):
- veri_num2 = random.randint(97,122) # 取值98-122随机一个整数
- veri_str2 = chr(veri_num2) # 转换小写字母a-z的随机
- veri_list.append(veri_str2)
-
- #通过chr()和ord()函数取随机数字0-9
- def num_1():
- for i in range(4):
- veri_num3 = random.randint(48,57)
- veri_str3 = chr(veri_num3)
- veri_list.append(veri_str3)
-
- #执行主函数
- def main():
- A_str()
- a_str()
- num_1()
- veri_res = random.sample(veri_list,4)
- # print(veri_res)
- print(str(veri_res[0]) + str(veri_res[1]) + str(veri_res[2]) + str(veri_res[3]))
- if __name__ == '__main__':
- main()
版本三:
- """
- 作者:白
- 日期:2018年4月15日
- 功能:利用random/chr()/ord()生成一个8位随机数(包含大小写字母和数字和特殊字符)
- chr(x) 将一个整数转换为一个字符
- ord(x) 将一个字符转换为它的整数值
- """
- import random
- veri_list = []
- # 通过chr()函数取随机大写字母A-Z
- def A_str():
- for i in range(2):
- veri_num1 = random.randint(65, 90) # 取值65-90随机一个整数
- veri_str1 = chr(veri_num1)
- veri_list.append(veri_str1)
-
- # 通过chr()函数取随机小写字母a-z
- def a_str():
- for i in range(2):
- veri_num2 = random.randint(97, 122) # 取值98-122随机一个整数
- veri_str2 = chr(veri_num2) # 转换小写字母a-z的随机
- veri_list.append(veri_str2)
-
- # 通过chr()和ord()函数取随机数字0-9
- def num_1():
- for i in range(2):
- veri_num3 = random.randint(48, 57)
- veri_str3 = chr(veri_num3)
- veri_list.extend(veri_str3)
-
- #通过列表生成随机特殊字符
- def s_str():
- tstr = ['!', '@', '#', '$', '%', '&', '_']
- veri_num4 = random.sample(tstr,2)
- veri_list.extend(veri_num4)
-
- # 执行主函数
- def main():
- A_str()
- a_str()
- num_1()
- s_str()
- res_str=random.sample(veri_list,8)
- print(''.join(res_str))
- if __name__ == '__main__':
- main()




