设为首页 加入收藏

TOP

Python学习笔记 6
2018-12-13 18:06:15 】 浏览:20
Tags:Python 学习 笔记
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lockey23/article/details/77746824

1. Python 日期和时间

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

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

注:本文部分示例是在ipython命令行中操作进行
Time 模块包含了以下内置函数,既有时间处理相的,也有转换时间格式的:
这里写图片描述
1.1 获取当前时间戳

In [65]: time = time.time()

In [66]: time
Out[66]: 1504162320.629396

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.3 获取格式化的时间

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

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

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

time.strftime(format[, t])

格式参数如下:

%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 当前时区的名称
%% %号本身

示例:

#将时间格式化为当前的'年-月-日 时:分:秒'格式
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.5 获取某月日历
Calendar模块内置函数:
这里写图片描述
Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:

#打印某个月的日历
>>> import calendar
>>> moth201708 = calendar.month(2017,8)
>>> print moth201708
    August 2017
Mo Tu We Th Fr Sa Su
    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
>>> 

1.6 拓展模块

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

In [50]: import datetime

In [51]: ti = datetime.datetime.now()

In [52]: ti
Out[52]: datetime.datetime(2017, 8, 31, 14, 29, 43, 544916)

In [53]: ti.is
ti.isocalendar  ti.isoformat    ti.isoweekday   

In [53]: ti.isoformat()
Out[53]: '2017-08-31T14:29:43.544916'

In [54]: ti.year
Out[54]: 2017

In [55]: ti.month
Out[55]: 8

In [56]: ti.day
Out[56]: 31

In [57]: ti.hour
Out[57]: 14

In [58]: ti.minute
Out[58]: 29

In [59]: ti.second
Out[59]: 43

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没有动,只是其内部的一部分值被修改了。

python 函数的参数传递:

不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

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

3. 不定长参数传递

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

def functionname([formal_args,] *var_args_tuple ):

#加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。对于未命名的参数,可以通过for in结构来调用
   ...
   return [expression]

示例:

In [74]: def argtest(arg1,*argset):
    print arg1
    for i in argset:
        print i
   ....:         

In [75]: argtest(1,2,3,4,5)
1
2
3
4
5

4. 匿名函数

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

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

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

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

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

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

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

示例:

In [60]: sum = lambda num1,num2:num1+num2
In [61]: sum(1,3)
Out[61]: 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]: result
Out[64]: 120

6. python number

这里写图片描述

这里写图片描述

这里写图片描述

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python学习笔记: Python 标准库.. 下一篇Python爬虫入门教程 2-100 妹子图..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目