• random随机模块,time时间模块


    random /随机模块:

    作用: 在某个范围内取到每一个值得概率是相通的.

    一.随机小数

    random.random()

    import random

    print(random.random())   0 - 1之内的随机小数.

    print(random.random(0, 5)) 0 - 5 之间随机取小数


    二.随机整数(重要等级:  ***** )

    random.randint()

      import random

      print(random.randint(1,  2))   

      ==> [1, 8] randint的取值区间为左闭右闭形式.  是在包含8在内的范围内随机取整数.

    random.randrange()

      import random

      print(random.randrange(1, 8))

      ==> [1 , 8)   randrange的取值区间为左闭右开,是在不包括8在内的范围内选取整数.

      print(random.randrange(1, 8, 2))

      是指在不包括8的区间选取奇数.(1,3,5,7   四个数种随机选取一个)


    三.随机抽取

    随机抽取一个值:  random.choice(1)

      import random

      lst = [1, 2, 4, 'aaa', ('wahaha', 'qq')]

      ret = random.choice(lst)  #  从列表中随机抽取一个

      print(ret)    # choice 返回的是一个字符串, chioces 返回的是一个列表

    随机抽取多个:  random.sample(索取对象的范围, 想要索取的个数)

      import random

      ret = random.sample(lst, 3)

      print(ret)   #   得到的结果是个列表,  sample里面的的需要处理的对象放第一个参数位置,第二个参数位置放需要取的个数.

    
    

    四. 打乱顺序

      rando.shuffile(lst)

      print(lst)


    实    例:

    生成六位随机验证码:

    import random

    ses = '' # 6位验证码存放位置
    for i in range(6): # 迭代6次, 使下面步骤运行6次,从而产生6位验证码
    num = str(random.randrange(0, 9, 1))
          # 此处是把每个数字取出一个,然后转成字符串形式,
          # 数字的话不能直接添加到字符转钟

    num1 = chr(random.randrange(65, 91, 1))
          # ASCII码中大写字母是从65 - 91,
          # 所以在得到准确数字以后再用chr()转成字母

    num2 = chr(random.randrange(97, 123, 1))# 此处是小写字母,理论同上.
    num3 = [num, num1, num2]  # 都先添加到一个列表中,
    sum4 = random.choice(num3)  #然后再用choice从列表中随机抽取一个
        ses += sum4 每次得到的 1 位验证码添加到 ses 字符串中
    print(ses)

    注意:  上面这种方法,num3 中出现数字的几率是三分之一.

    函数版: 

    import random
    def rand_cone(n = 6):
    ses = ''
    for i in range(n):
    num = str(random.randrange(0, 9, 1))
    num1 = chr(random.randrange(65, 91, 1))
    num2 = chr(random.randrange(97, 123, 1))
    num3 = [num, num1, num2]
    sum4 = random.choice(num3)
    ses += sum4
    print(ses)

    rand_cone()

    # 数字/数字+字母
    # def rand_code(n=6 , alph_flag = True):
    # code = ''
    # for i in range(n):
    # rand_num = str(random.randint(0,9))
    # if alph_flag:
    # rand_alph = chr(random.randint(97,122))
    # rand_alph_upper = chr(random.randint(65,90))
    # rand_num = random.choice([rand_num,rand_alph,rand_alph_upper])
    # code += rand_num
    # return code
    #
    # ret = rand_code(n = 4)
    # print(ret)

    # ***** 永远不要创建一个和你知道的模块同名的文件名


    time/时间模块

    时间模块分为:

      1, 时间戳时间,(给机器用的)

        格林威治时间,float数据类型  给机器用的

        # 英国伦敦的时间 1970.1.1 0:0:0
        # 北京时间 1970.1.1 8:0:0
        # 1533693120.3467407

      2, 结构化时间,(上下两种格式的中间状态)

        时间对象 能够通过.属性名来获取对象中的值

      3, 格式化时间.(给人看的)

        可以根据你需要的格式 来显示时间


    1,时间戳时间:

    import time

    print(time.time())

    2, 结构化时间

    # time_obj = time.localtime()      

    # print(time_obj)
    # print(time_obj.tm_year)
    # print(time_obj.tm_mday)

    索引(Index) 属性(Attribute) 值(Values)
    0 tm_year(年) 比如2011
    1 tm_mon(月) 1 - 12
    2 tm_mday(日) 1 - 31
    3 tm_hour(时) 0 - 23
    4 tm_min(分) 0 - 59
    5 tm_sec(秒) 0 - 60
    6 tm_wday(weekday) 0 - 6(0表示周一)
    7 tm_yday(一年中的第几天) 1 - 366
    8 tm_isdst(是否是夏令时) 默认为0

    3,格式化时间:

    print(time.strftime('%Y-%m-%d'))

    %y 两位数的年份表示(00-99)
    %Y 四位数的年份表示(000-9999)
    %m 月份(01-12)
    %d 月内中的一天(0-31)
    %H 24小时制小时数(0-23)
    %I 12小时制小时数(01-12)
    %M 分钟数(00=59)
    %S 秒(00-59)
    %a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366)
    %p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称
    %% %号本身

    python中时间日期格式化符号:

      

    小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的


    几种格式之间的转换

    time.gmtime(时间戳)    #UTC时间,与英国伦敦当地时间一致
    #time.localtime(时间戳) #当地时间。例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间 
    >>>time.gmtime(1500000000)
    time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
    >>>time.localtime(1500000000)
    time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)

    从时间戳时间转化到 格式化时间:

    import time

    a = time.time()
    f = time.localtime(a)
    c = time.strftime('%Y-%m-%d %H:%M:%S', f)
    print(c)


    # 计算本月一号的时间戳时间
    # 结构化时间
    # struct_time = time.localtime()
    # struct_time = time.strptime('%s-%s-1'%(struct_time.tm_year,struct_time.tm_mon),'%Y-%m-%d')
    # print(time.mktime(struct_time))
    # 格式化时间
    # ret = time.strftime('%Y-%m-1')
    # struct_time = time.strptime(ret,'%Y-%m-%d')
    # print(time.mktime(struct_time))

     

  • 相关阅读:
    LTPA Cookie原理
    如何对更改internet密码所需的缓存时间进行调整?
    Freemem eclipse查看内存的小插件
    Java中static、final用法小结
    MANIFEST.MF内容属性名详细解释
    Java程序员的良药:应用程序的开发技巧
    spring struts2 ibatis框架整合开发
    java中静态代码块的用法 static用法详解 类的加载顺序
    从svn上直接导入项目到workspace中
    Eclipse自动生成UML图 Green UML和ModelGoon(直接推拽)
  • 原文地址:https://www.cnblogs.com/hfbk/p/9443096.html
Copyright © 2020-2023  润新知