A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不二晨 金牌黑马   /  2018-8-31 10:02  /  1016 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【转】        https://blog.csdn.net/Lockey23/article/details/77746824
1. Python 日期和时间

Python 提供了 time 和 calendar 模块可以用于格式化日期和时间。

import time;  #一般要使用time模块的函数时需要引入time模块
  • 1
  • 2
  • 3

注:本文部分示例是在ipython命令行中操作进行
Time 模块包含了以下内置函数,既有时间处理相的,也有转换时间格式的:

1.1 获取当前时间戳

In [65]: time = time.time()In [66]: timeOut[66]: 1504162320.629396
  • 1
  • 2
  • 3
  • 4
  • 5

1.2 获取当前时间

从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。

In [40]: time.localtime(time.time())Out[40]: time.struct_time(tm_year=2017, tm_mon=8, tm_mday=31, tm_hour=14, tm_min=9, tm_sec=26, tm_wday=3, tm_yday=243, tm_isdst=0)
  • 1
  • 2
  • 3

1.3 获取格式化的时间

你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():

In [41]: time.asctime(time.localtime(time.time()))Out[41]: 'Thu Aug 31 14:10:43 2017'
  • 1
  • 2
  • 3

1.4 格式化日期
我们可以使用 time 模块的 strftime 方法来格式化日期,调用格式如下:

time.strftime(format[, t])
  • 1
  • 2

格式参数如下:

%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 当前时区的名称%% %号本身
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

示例:

#将时间格式化为当前的'年-月-日 时:分:秒'格式In [42]: time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())Out[42]: '2017-08-31 14:12:46'#将时间格式化为当前的'星期 月份 日期 时:分:秒 年'格式In [43]: time.strftime("%a %b %d %H:%M:%S %Y",time.localtime())Out[43]: 'Thu Aug 31 14:15:15 2017'# 将格式字符串转换为时间戳timestr = 'Thu Aug 31 14:16:46 2017'In [46]: time.mktime(time.strptime(timestr,'%a %b %d %H:%M:%S %Y'))Out[46]: 1504160206.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

1.5 获取某月日历
Calendar模块内置函数:

Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:

#打印某个月的日历>>> import calendar>>> moth201708 = calendar.month(2017,8)>>> print moth201708    August 2017Mo Tu We Th Fr Sa Su    1  2  3  4  5  6 7  8  9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30 31>>>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

1.6 拓展模块

使用datetime模块来获取当前的日期和时间

In [50]: import datetimeIn [51]: ti = datetime.datetime.now()In [52]: tiOut[52]: datetime.datetime(2017, 8, 31, 14, 29, 43, 544916)In [53]: ti.isti.isocalendar  ti.isoformat    ti.isoweekday   In [53]: ti.isoformat()Out[53]: '2017-08-31T14:29:43.544916'In [54]: ti.yearOut[54]: 2017In [55]: ti.monthOut[55]: 8In [56]: ti.dayOut[56]: 31In [57]: ti.hourOut[57]: 14In [58]: ti.minuteOut[58]: 29In [59]: ti.secondOut[59]: 43
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2. 可更改(mutable)与不可更改(immutable)对象在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

python 函数的参数传递:

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

python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。

3. 不定长参数传递

我们可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,声明时不会命名。基本语法如下:

def functionname([formal_args,] *var_args_tuple ):#加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。对于未命名的参数,可以通过for in结构来调用   ...   return [expression]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

示例:

In [74]: def argtest(arg1,*argset):    print arg1    for i in argset:        print i   ....:         In [75]: argtest(1,2,3,4,5)12345
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
4. 匿名函数

python 使用 lambda 来创建匿名函数。

lambda只是一个表达式,函数体比def简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

lambda函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression
  • 1
  • 2

示例:

In [60]: sum = lambda num1,num2:num1+num2In [61]: sum(1,3)Out[61]: 4
  • 1
  • 2
  • 3
  • 4
5. return 语句

return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。

例如我们有一个计算多数字乘法的函数,我们想调用它进行计算然后将结果返回并且赋值给一个变量:

In [62]: def mult(lst):   ....:     result = 1   ....:     for i in lst:   ....:         result *= i   ....:     return result   ....: In [63]: result = mult([1,2,3,4,5])In [64]: resultOut[64]: 120
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
6. python number







1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马