zoukankan      html  css  js  c++  java
  • 模块的分类以及time与date time 模块 radom模块

    1、标准库,或者内置模块,python解释器自带的,比如sys,os模块

    2、开源模块,或者叫第三方模块,python就强大在这里。

    3、自定义模块。

    标准库:

    1、时间模块time与datetime模块

    #_*_coding:utf-8_*_
    import time
     
     
    # print(time.clock()) #返回处理器时间,3.3开始已废弃 , 改成了time.process_time()测量处理器运算时间,不包括sleep时间,不稳定,mac上测不出来
    # print(time.altzone)  #返回与utc时间的时间差,以秒计算
    # print(time.asctime()) #返回时间格式"Fri Aug 19 11:14:16 2016",
    # print(time.localtime()) #返回本地时间 的struct time对象格式
    # print(time.gmtime(time.time()-800000)) #返回utc时间的struc时间对象格式
     
    # print(time.asctime(time.localtime())) #返回时间格式"Fri Aug 19 11:14:16 2016",
    #print(time.ctime()) #返回Fri Aug 19 12:38:29 2016 格式, 同上
     
     
     
    # 日期字符串 转成  时间戳
    # string_2_struct = time.strptime("2016/05/22","%Y/%m/%d") #将 日期字符串 转成 struct时间对象格式
    # print(string_2_struct)
    # #
    # struct_2_stamp = time.mktime(string_2_struct) #将struct时间对象转成时间戳
    # print(struct_2_stamp)
     
     
     
    #将时间戳转为字符串格式
    # print(time.gmtime(time.time()-86640)) #将utc时间戳转换成struct_time格式
    # print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #将utc struct_time格式转成指定的字符串格式
     
    #时间加减
    import datetime
     
    # print(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925
    #print(datetime.date.fromtimestamp(time.time()) )  # 时间戳直接转成日期格式 2016-08-19
    # print(datetime.datetime.now() )
    # print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
    # print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
    # print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
    # print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分
     
     
    #
    # c_time  = datetime.datetime.now()
    # print(c_time.replace(minute=3,hour=2)) #时间替换
    %a    本地(locale)简化星期名称    
    %A    本地完整星期名称    
    %b    本地简化月份名称    
    %B    本地完整月份名称    
    %c    本地相应的日期和时间表示    
    %d    一个月中的第几天(01 - 31%H    一天中的第几个小时(24小时制,00 - 23%I    第几个小时(12小时制,01 - 12%j    一年中的第几天(001 - 366%m    月份(01 - 12%M    分钟数(00 - 59%p    本地am或者pm的相应符    一    
    %S    秒(01 - 61)    二    
    %U    一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。    三    
    %w    一个星期中的第几天(0 - 6,0是星期天)    三    
    %W    和%U基本相同,不同的是%W以星期一为一个星期的开始。    
    %x    本地相应日期    
    %X    本地相应时间    
    %y    去掉世纪的年份(00 - 99%Y    完整的年份    
    %Z    时区的名字(如果不存在为空字符)    
    %%    ‘%’字符

    1)时间戳: time.time(),从1970年1月1日0点0分0秒,到现在的秒数。单位是秒

    为什么是1970开始计算呢,因为1970那年是unix开始诞生,所以从那年开始计算。

    2)格式化的时间字符串

    完全按照自己的格式去定义时间

    3)元祖(struct_time) 共九个元素,由于Python的time模块实现主要调用C库,所以各个平台可能有所不同

    time.localtime()

    年,月,日,小时,分钟,秒,tm_wday星期几,注意0是星期1,6是星期天,tm_yday一年当中的第几天,tm_isdst时区是否是夏令时0代表不是夏令时

    和夏令时的差值

    是否使用了夏令时

    获取时间戳

     睡几秒钟,等待几秒钟

    时间戳转换成元祖格式化时间。

    如果time.gmtime()里面为空,返回的是UTC时间:跟北京时间差了8个小时

    time.localtime()返回的是本地时间:

     time.localtime(从1970年到现在的秒数time.time())可以转换为本地时间:

    同理gmtime(时间戳)也可以转换为UTC时间。

    把localtime的元祖值取出来:

    如果我们想把元祖格式化时间转换为时间戳,可以用mktime()

    如果我们想把元祖的时间转换为字符串格式:用time.strftime()

    把字符串转换为元祖时间格式:用time.strptime(),这个函数的用法跟time.strftime()正好相反

    总结下:

    strftime("格式",struct_time)---->"格式化的字符串"

    strptime("格式化的字符串",“格式”)---->struct_time

    把元祖时间转换为字符串:用time.asctime(x元祖时间),如果不提供参数,就表示当前时间

     

    把时间戳转换为字符串,用 ctime(),同样不传入参数,表示本地当前时间

    ctime和asctime的区别是,一个是元祖时间格式作为参数,一个是时间戳作为参数。

    datetime模块:

    datetime.date--->对应的是日期

    datetime.time--->对应的是时间

    datetime.datetime--->对应的是日期和时间

    获取当前时间:

    计算当前时间的几天前的时间或者几天后的时间

    计算当前时间的三天后的时间:

    前天的时间:

    当前时间的后3个小时和3个小时前的时间:

    当前+30分钟

    时间的替换:

    修改当前的时间:修改小时和分钟

    random函数

    #!/usr/bin/env python
    #_*_encoding: utf-8_*_
    import random
    print (random.random())  #0.6445010863311293  
    #random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
    print (random.randint(1,7)) #4
    #random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。
    # 其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
    print (random.randrange(1,10)) #5
    #random.randrange的函数原型为:random.randrange([start], stop[, step]),
    # 从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),
    # 结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。
    # random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。
    print(random.choice('liukuni')) #i
    #random.choice从序列中获取一个随机元素。
    # 其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。
    # 这里要说明一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。
    # list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。
    # 下面是使用choice的一些例子:
    print(random.choice("学习Python"))#
    print(random.choice(["JGood","is","a","handsome","boy"]))  #List
    print(random.choice(("Tuple","List","Dict")))   #List
    print(random.sample([1,2,3,4,5],3))    #[1, 2, 5]
    #random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。

    import random

    随机0-1的小数

    随机整数,1-3的整数,这个时候randint是从1-3的整数

    但是如果你用的是randrange(1,3),包含的是从1-2的整数,不包括3,range是顾头不顾尾。

     

    如果我们想随意序列里挑一个字符,用choice()

    序列包括:字符串,列表,元祖

    从指定序列中随机获取指定长度的片段,sample函数,比如下面序列中随机取2位随机的

    从指定数值区间,获得一个随机数,random.uniform(1,10)

    洗牌功能:

    一个有序的列表,可以重新洗牌,打乱顺序random.shuffle(items)

    我们现在来做一个例子,生成4位英文+数字的随机验证码:

    chr(65-90)作用是把数字变成大写的英文字母A-Z

  • 相关阅读:
    node.js 安装后怎么打开 node.js 命令框
    thinkPHP5 where多条件查询
    网站title中的图标
    第一次写博客
    Solution to copy paste not working in Remote Desktop
    The operation could not be completed. (Microsoft.Dynamics.BusinessConnectorNet)
    The package failed to load due to error 0xC0011008
    VS2013常用快捷键
    微软Dynamics AX的三层架构
    怎样在TFS(Team Foundation Server)中链接团队项目
  • 原文地址:https://www.cnblogs.com/itfat/p/7482095.html
Copyright © 2011-2022 走看看