博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3基础系列之五【日期时间&函数&模块简介】
阅读量:4579 次
发布时间:2019-06-08

本文共 4686 字,大约阅读时间需要 15 分钟。

一:日期时间

1:简介

  • Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
  • Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
  • 时间间隔是以秒为单位的浮点小数。
  • 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
  • Python 的 time 模块下有很多函数可以转换常见日期格式。

2:时间元组

python一般用元组装起来的9组数字处理时间

序号 字段
0 4位数年 2008
1 1 到 12
2 1到31
3 小时 0到23
4 分钟 0到59
5 0到61 (60或61 是闰秒)
6 一周的第几日 0到6 (0是周一)
7 一年的第几日 1到366 (儒略历)
8 夏令时 -1, 0, 1, -1是决定是否为夏令时的旗帜

struct_time元组属性

序号 属性
0 tm_year 2008
1 tm_mon 1 到 12
2 tm_mday 1 到 31
3 tm_hour 0 到 23
4 tm_min 0 到 59
5 tm_sec 0 到 61 (60或61 是闰秒)
6 tm_wday 0到6 (0是周一)
7 tm_yday 一年中的第几天,1 到 366
8 tm_isdst 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1

3: 简易操作

  • 获取当前时间

    time.localtime()  返回一串当前时间的时间元组

在这里插入图片描述

  • 获取格式化时间

    time.asctime(time.localtime()) 获取可读的时间模式的

在这里插入图片描述

  • 格式化日期

    time.strftime(format,t)

在这里插入图片描述

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

%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 当前时区的名称%% %号本身
  • 获取某月日历
    Calendar模块有很广泛的方法用来处理年历和月历
    • 获取某一月份的日历

      calendar.month(year,moth)

在这里插入图片描述

- 获取某一年份的所有月份日历

calendar.calendar(year)

在这里插入图片描述

4:time模块

Time 模块包含了以下内置函数,既有时间处理的,也有转换时间格式的:

序号 函数 描述 实例
1 time.altzone 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
2 time.asctime([tupletime]) 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
3 time.clock() 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。 在这里插入图片描述
4 time.ctime([secs]) 作用相当于asctime(localtime(secs)),未给参数相当于asctime() 在这里插入图片描述
5 time.gmtime([secs]) 接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0 在这里插入图片描述
6 time.localtime([secs] 接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。 在这里插入图片描述
7 time.mktime(tupletime) 接受时间元组并返回时间戳(1970纪元后经过的浮点秒数)。
8 time.sleep(secs) 推迟调用线程的运行,secs指秒数。 在这里插入图片描述
9 time.strftime(fmt[,tupletime]) 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。 在这里插入图片描述
10 time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’) 根据fmt的格式把一个时间字符串解析为时间元组。 在这里插入图片描述
11 time.time( ) 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。 在这里插入图片描述
12 time.tzset() 根据环境变量TZ重新初始化时间相关设置。
13 time.perf_counter() 返回计时器的精准时间(系统的运行时间),包含整个系统的睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。
14 time.process_time() 返回当前进程执行 CPU 的时间总和,不包含睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。

日历(Calendar)模块

序号 函数 描述
1 calendar.calendar(year,w=2,l=1,c=6) 返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
2 calendar.firstweekday( ) 返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
3 calendar.isleap(year) 是闰年返回 True,否则为 false。
4 calendar.leapdays(y1,y2) 返回在Y1,Y2两年之间的闰年总数。
5 calendar.month(year,month,w=2,l=1) 返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
6 calendar.monthcalendar(year,month) 返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
7 calendar.monthrange(year,month) 返回两个整数。第一个是该月的星期几,第二个是该月有几天。星期几是从0(星期一)到 6(星期日)。
8 calendar.prcal(year,w=2,l=1,c=6) 相当于 print calendar.calendar(year,w,l,c).
9 calendar.prmonth(year,month,w=2,l=1) 相当于 print calendar.calendar(year,w,l,c)。
10 calendar.setfirstweekday(weekday) 设置每周的起始日期码。0(星期一)到6(星期日)。
11 calendar.timegm(tupletime) 和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳(1970纪元后经过的浮点秒数)。
12 calendar.weekday(year,month,day) 返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。

在这里插入图片描述

二:函数

  • 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

  • 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

1:自定义函数

  • 函数语法

    def 函数名(参数列表):      函数体  默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的
  • 自定义函数相关规则

    • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
    • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
      在这里插入图片描述

2:函数调用

调用函数直接使用函数名即可调用该函数

在这里插入图片描述

3:参数

  • 参数分类

    必需参数:须以正确的顺序传入函数。调用时的数量必须和声明时的一样  关键字参数:函数调用使用关键字参数来确定传入的参数值,使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值  默认参数:调用函数时,如果没有传递参数,则会使用默认参数  不定长参数:函数能处理比当初声明时更多的参数,可以使用不定长参数
  • 必需参数

  • 在这里插入图片描述

  • 关键字参数

    在这里插入图片描述

  • 默认参数

    在这里插入图片描述

  • 不定长参数

    在这里插入图片描述

4:参数传递

在 python 中,类型属于对象,变量是没有类型的

python 函数的参数传递:

不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
  • 传递可变对象参数
    在这里插入图片描述
  • 传递不可变对象参数
    在这里插入图片描述

5:匿名函数

lambda来创建匿名函数(不再使用def语句定义函数)

lambda [arg1 [,arg2,.....argn]]:expression :lambda语法

lambda简述如下:

lambda 只是一个表达式,函数体比 def 简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

在这里插入图片描述

三:模块

1:简述

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能

2:模块分类

  • 模块一共三种:
    • python标准库
    • 第三方模块
    • 应用程序自定义模块

3:自定义模块

python中一个.py文件作为模块

在这里插入图片描述

4:模块导入

  • import语句

    import module1[, module2[,... moduleN]

    在这里插入图片描述

  • from…import语句

    from modename import name1[, name2[, ... nameN]]  from modname import *

    在这里插入图片描述

5:模块的查找顺序

  • import模块的查找模块的顺序如下:
    1、先从当前目录下找
    2、当前目录下找不到的话,在从sys.path的路径找

转载地址:http://rxqms.baihongyu.com/

你可能感兴趣的文章
GPS.NET 和 GeoFramework开源了
查看>>
汇编:采用址表的方法编写程序实现C程序的switch功能
查看>>
AtiveMQ初次连接的 http error:503 连接错误 Prolem accessing /.Reason : Service Unavailable...
查看>>
OFO和摩拜共享单车
查看>>
数据适配 DataAdapter对象
查看>>
有序列表ol和定义列表dl,dt,dd
查看>>
联想小新Air 15 安装黑苹果macOS High Sierra 10.13.6过程
查看>>
公共POI导出Excel方法–java
查看>>
次短路——Dijkstra
查看>>
站立会议总结08
查看>>
动态代理
查看>>
中小企业实施OA的意义
查看>>
caller和callee的解析与使用-型参与实参的访问
查看>>
Enter Query Mode Search Tricks Using Enter_Query Built-in in Oracle Forms
查看>>
Form属性、内置子程序、触发器、系统变量
查看>>
广州夜景一
查看>>
linux编译安装python3和安装django
查看>>
PHP数组对象互转
查看>>
JVM(2)--一文读懂垃圾回收
查看>>
iOS ERROR: unable to get the receiver data from the DB 解决方式
查看>>