• 【Python】随机数/随机值


    一、随机数

    import random
    
    # 1 生成m、n之间的随机整数
    print(random.randint(10, 99))  # 75
    
    # 2 生成m、n之间的随机浮点数
    print(random.uniform(10, 99))  # 98.37125047276466
    
    # 3 生成0-1之间的随机浮点数(可用作百分比)
    print(random.random())  # 0.4887568365715589

    二、随机值

    生成指定长度的随机值
    1、数字
    2、小写字母
    3、大小字母
    4、小写+大写
    5、字母(小、大)+数字
    6、数字+小写
    7、数字+大写
    """
    -*- coding:utf-8 -*-
    @Time   :2020/9/3 18:33
    @Author :Jarvis
    @File   :jar_random.py
    @Version:1.0
    """
    import random
    
    """
    生成指定长度的随机值
    1、数字
    2、小写字母
    3、大小字母
    4、小写+大写
    5、字母(小、大)+数字
    6、数字+小写
    7、数字+大写
    """
    
    
    class JarRandom:
        NUMBER = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
        LOWER = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
                 'v',
                 'w', 'x', 'y', 'z']
        UPPER = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
                 'V', 'W', 'X', 'Y', 'Z']
        LOWER_UPPER = LOWER + UPPER
        NUMBER_LOWER_UPPER = NUMBER + LOWER_UPPER
        NUMBER_LOWER = NUMBER + LOWER
        NUMBER_UPPER = NUMBER + UPPER
    
        def random_int_str(self, count: int, first: bool = False):
            """
            生成指定长度的随机数据字符串
            :param count: 长度
            :param first: 生成的数字字符串 首位是否可以为零
            :return: 字符串数字
            """
            if first:
                return self.__random_base(count, self.NUMBER)
            else:
                while True:
                    value = self.__random_base(count, self.NUMBER)
                    if str(value[0]) is not '0':
                        return value
    
        def random_lower_str(self, count: list):
            """
            生成指定长度的随机小写字母字符串
            :param count: 长度
            :return:
            """
            return self.__random_base(count, self.LOWER)
    
        def random_upper_str(self, count: list):
            """
            生成指定长度的随机大写字母字符串
            :param count: 长度
            :return:
            """
            return self.__random_base(count, self.UPPER)
    
        def random_low_upp_str(self, count: list):
            """
            生成指定长度的随机字母(大、小写)字符串
            :param count: 长度
            :return:
            """
            return self.__random_base(count, self.LOWER_UPPER)
    
        def random_low_upp_number_str(self, count: list):
            """
            生成指定长度的随机字符(大小写字母+数据)
            :param count: 长度
            :return:
            """
            return self.__random_base(count, self.NUMBER_LOWER_UPPER)
    
        def random_low_number_str(self, count: list):
            """
            生成指定长度的随机字符(小写字母+数字)
            :param count: 长度
            :return:
            """
            return self.__random_base(count, self.NUMBER_LOWER)
    
        def random_upp_number_str(self, count: list):
            """
            生成指定长度的随机字符(大写字母+数字)
            :param count: 长度
            :return:
            """
            return self.__random_base(count, self.NUMBER_UPPER)
    
        @staticmethod
        def __random_base(count: list, type):
            value = ''
            for c in range(count):
                value += str(type[random.randint(0, len(type) - 1)])
            return value
    
    
    if __name__ == '__main__':
        jar_random = JarRandom()
        print('数字:', jar_random.random_int_str(100))
        print('小写:', jar_random.random_lower_str(100))
        print('大写:', jar_random.random_upper_str(100))
        print('小写+大写:', jar_random.random_low_upp_str(100))
        print('小写+大写+数字:', jar_random.random_low_upp_number_str(100))
        print('小写+数字:', jar_random.random_low_number_str(100))
        print('大写+数字:', jar_random.random_upp_number_str(100))

    输出:

    数字: 2311096645407908131945600122176296983213860552402568807965300069452990896775908701995407406928002495
    小写: nurmkkoqjryrdjvuraextxczdvmemuoemsekigowmyffedidzzjbnbfstryoawfyevrjsgzckbpgeqngacmpxzuwgxilylmcftuz
    大写: NDXPDWHVMJOPRWHBQYGTZMVSBGZHPXEQGEZDLWKCNNTQBFLMUNAFBZOWOWBZAOIIVDFHTJOGMNPABXMYQBUYWKIZLWCJQSQLURZQ
    小写+大写: sGBrOPpiEnSsajvHecvmuPnPlOELjtXkDVdSMemwApaACyklmFaJpVXMabAzkgVhnWrBxUWGTLsudMcXCPagHmtHHKuilzAFpwJR
    小写+大写+数字: Ny4Nzs9TwhxBA7hJ5j28cOPSMpsHQyg4SniawKNKL6KiwAtulX93JHknsEJAXjqyLT4zgtzieC4BrTT2iMzvYkmjAKbgG1wnT2vu
    小写+数字: 4t1vjq8ev4z5el917ryn6mlowf2g2j5axzwtfkvfgiqqax67yec07bhcps0kdprr41tbt98ilnpi6pnxudhzyvz5y28yi60n19yo
    大写+数字: 22857MXCEC3SM3HJ4U4SZ4LXRSG2XNTVV23JBLKGT30WKQXXC5BGY5DIHPATX6WSO15C8D6VT1XVGDQX4OMM3YBY4QDEQGLW7POD
  • 相关阅读:
    2017年系统架构设计师论文范文
    在SQL Server 2008中执行透明数据加密(转自IT专家网)
    开发笔记
    [置顶] GO-Gin框架快速指南
    [置顶] JS-逆向爬虫
    [置顶] ES篇
    [置顶] GO
    [置顶] 爬虫入狱指南
    [置顶] websocket
    [置顶] Linux篇
  • 原文地址:https://www.cnblogs.com/danhuai/p/13448651.html
Copyright © 2020-2023  润新知