1. """
  2.            作者:白
  3.            时间:2018年1月8日
  4.            功能: 生成随机4位验证码(必须由两个2字母和2个数字组成)
  5. """
  6. import  random
  7. def main():
  8.     list_num = [1,2,3,4,5,6,7,8,9,0]
  9.     list_str = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','s','t','x','y','z']
  10.     veri_str = random.sample(list_str,2)
  11.     veri_num = random.sample(list_num,2)
  12.     veri_out = random.sample(veri_num + veri_str,4)
  13.     veri_res = str(veri_out[0]) + str(veri_out[1]) + str(veri_out[2]) + str(veri_out[3])
  14.     print(veri_res)
  15. if __name__ == '__main__':
  16.     main()

这里有两个问题:

1、如何简化list_str  生成一个a-z的列表,这里我就用比较笨的方法一个一个列出来了

2、不知道python有没有一键式的函数,生成验证码的那种


如知道以上两个问题的,可以留言告诉我一下,不胜感激!~


对于上面的问题,经过昨天下午的测试和练习以不同函数分开的方法拼接而成,这样方便后面对于不同模块的使用。

版本二:

  1. """
  2.         作者:白
  3.         日期:2018年1月8日
  4.         功能:利用random/chr()/ord()生成一个4位随机数(包含大小写字母和数字)
  5. chr(x)                 将一个整数转换为一个字符
  6. ord(x)                 将一个字符转换为它的整数值
  7. """
  8. import random
  9. veri_list = []
  10. #通过chr()函数取随机大写字母A-Z
  11. def A_str():
  12.     for i in range(4):
  13.         veri_num1 = random.randint(65,90)  #取值65-90随机一个整数
  14.         veri_str1 = chr(veri_num1)
  15.         veri_list.append(veri_str1)
  16. #通过chr()函数取随机小写字母a-z
  17. def a_str():
  18.     for i in range(4):
  19.         veri_num2 = random.randint(97,122)  # 取值98-122随机一个整数
  20.         veri_str2 = chr(veri_num2)           # 转换小写字母a-z的随机
  21.         veri_list.append(veri_str2)
  22. #通过chr()和ord()函数取随机数字0-9
  23. def num_1():
  24.     for i in range(4):
  25.         veri_num3 = random.randint(48,57)
  26.         veri_str3 = chr(veri_num3)
  27.         veri_list.append(veri_str3)
  28. #执行主函数
  29. def main():
  30.     A_str()
  31.     a_str()
  32.     num_1()
  33.     veri_res = random.sample(veri_list,4)
  34.     # print(veri_res)
  35.     print(str(veri_res[0]) + str(veri_res[1]) + str(veri_res[2]) + str(veri_res[3]))
  36. if __name__ == '__main__':
  37.     main()

版本三:

  1. """
  2.         作者:白
  3.         日期:2018年4月15日
  4.         功能:利用random/chr()/ord()生成一个8位随机数(包含大小写字母和数字和特殊字符)
  5. chr(x)                 将一个整数转换为一个字符
  6. ord(x)                 将一个字符转换为它的整数值
  7. """
  8. import random
  9. veri_list = []
  10. # 通过chr()函数取随机大写字母A-Z
  11. def A_str():
  12.     for i in range(2):
  13.         veri_num1 = random.randint(6590)  # 取值65-90随机一个整数
  14.         veri_str1 = chr(veri_num1)
  15.         veri_list.append(veri_str1)
  16.         
  17. # 通过chr()函数取随机小写字母a-z
  18. def a_str():
  19.     for i in range(2):
  20.         veri_num2 = random.randint(97122)  # 取值98-122随机一个整数
  21.         veri_str2 = chr(veri_num2)  # 转换小写字母a-z的随机
  22.         veri_list.append(veri_str2)
  23.         
  24. # 通过chr()和ord()函数取随机数字0-9
  25. def num_1():
  26.     for i in range(2):
  27.         veri_num3 = random.randint(4857)
  28.         veri_str3 = chr(veri_num3)
  29.         veri_list.extend(veri_str3)
  30.         
  31. #通过列表生成随机特殊字符        
  32. def s_str():
  33.     tstr = ['!''@''#''$''%''&''_']
  34.     veri_num4 = random.sample(tstr,2)
  35.     veri_list.extend(veri_num4)
  36.     
  37. # 执行主函数
  38. def main():
  39.     A_str()
  40.     a_str()
  41.     num_1()
  42.     s_str()
  43.     res_str=random.sample(veri_list,8)
  44.     print(''.join(res_str))
  45. if __name__ == '__main__':
  46.     main()