• Python 自定义包和模块随机生成6位验证码(详解版)


    一、新建一个包(两种方法)

    方法一:先新建一个空目录命名为"小功能包",然后在新建的目录下新建一个空__init__.py(目的是声明当前目录是一个包)

    方法二:直接在PyCharm用鼠标依次点击File --> New --> Python Package,然后命名为"小功能包"

    二、新建一个模块

    在PyCharm用鼠标依次点击File --> New --> Python File,然后命名为"验证码.py"

    三、在自定义模块"验证码.py"编写代码,源码如下:

    1. """
    2. 获取验证码模块
    3. """
    4. # 获取验证码 ========================================================
    5. class verify_code:
    6. __int_list = [] # 用于存储数字
    7. __str_list = [] # 用于存储字母
    8. __all_list = [] # 用于存储数字和字母
    9. # 列表添加元素 ---------------------------------------------------
    10. @classmethod
    11. def __list_append(cls):
    12. # 初始化清空
    13. cls.__int_list = []
    14. cls.__str_list = []
    15. cls.__all_list = []
    16. # 获取0-9数字
    17. for i in range(10):
    18. cls.__int_list.append(str(i))
    19. # 获取26个大小写字母
    20. for i in range(26):
    21. cls.__str_list.append(chr(ord('a')+i))
    22. cls.__str_list.append(chr(ord('A')+i))
    23. # 把数字和字母列表集合到一起
    24. cls.__all_list.extend(cls.__int_list)
    25. cls.__all_list.extend(cls.__str_list)
    26. # 获取列表元素 ---------------------------------------------------
    27. @classmethod
    28. def get_list_element(cls, list, int):
    29. import random
    30. code = ''
    31. for i in range(int):
    32. code += random.choice(list)
    33. return code
    34. # 纯获取数字验证码 --------------------------------------------------
    35. @classmethod
    36. def int_sequence(cls, int=6):
    37. cls.__list_append() # 列表添加元素
    38. # 获取列表的元素
    39. return cls.get_list_element(cls.__int_list, int)
    40. # 获取纯字母验证码 --------------------------------------------------
    41. @classmethod
    42. def str_sequence(cls, int=6):
    43. cls.__list_append() # 列表添加元素
    44. # 获取列表的元素
    45. return cls.get_list_element(cls.__str_list, int)
    46. # 获取数字和字母验证码 ---------------------------------------------
    47. @classmethod
    48. def verify_code(cls, int=6):
    49. cls.__list_append() # 列表添加元素
    50. # 获取列表的元素
    51. return cls.get_list_element(cls.__all_list, int)
    52. # 代码测试 =============================================================
    53. if __name__ == '__main__':
    54. print(verify_code.int_sequence())
    55. print(verify_code.str_sequence())
    56. print(verify_code.verify_code())
    57. else:
    58. print(f'导入"{__name__}"模块')

    四、包里的模块如何应用,源码如下:

    1. from 小功能包.验证码 import verify_code
    2. print(verify_code.int_sequence())
    3. print(verify_code.str_sequence())
    4. print(verify_code.verify_code())

    运行结果:

    1. 导入"小功能包.验证码"模块
    2. 105636
    3. CEqAsj
    4. uOHG5t

    作者:周华

    创作日期:2023/10/11

  • 相关阅读:
    11.10 校招 实习 内推 面经
    《自然语言处理实战入门》 基于知识图谱的问答机器人
    百度Apollo9.0安装中,bash docker-install.sh操作后,一直出现“有10个软件包未被升级 DEPRECATION WARNING 无法定位软件包 ”的情况
    【Spring boot 拦截器 HandlerInterceptor】
    STM32——SD卡实验(SDIO方式)
    【ArcGIS Pro微课1000例】0031:las点云提取(根据范围裁剪点云)
    当Python遇到分形数学魔法 --> 树叶
    【原创】为什么Linux不是实时操作系统
    json入门教程+在java中的一些便捷操作
    【无标题】
  • 原文地址:https://blog.csdn.net/zhouhua2022/article/details/133780273