day10-20180422笔记

笔记:Python复习及模块(time、datetime)

 一、复习

1、Python的数据类型

 .strip()  字符串过滤空格,有事没事,你用一下,只能过滤前和尾的空格。

print(" a1 b 2c3d4".strip())

.replace(old, new)  方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

str = "www.baidu.cn"
print("旧地址:", str)
print("新地址:", str.replace("baidu.cn","baidu.com"))

.find(sub)   字符串查找sub字符串的内容,如果找到,返回自字符串的下标,否则返回-1

str = "www.baidu.cn"

print(str.find('w',1))
print(str.find('w',3))

.format()    字符串格式化

print("hello'{0} {1}".format('s','yangyuanqiang'))

.split()      切割字符串

print("a1b1c1d2".split("1"))

.join()      列表追加

a = ["a", "b", "c", "d", "e"]
print("-------".join(a))

.startswith()    用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False

print("asdfasjdfas".startswith("asdfas"))

index 下标

count 统计

tuple 强制类型

a =(1, 2, 3, 1, 5, 6)
print(a.index(5))
print(a.count(1))

list  列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等都可以任何东西加入到列表中日中的元素之间没有任何关系。列表也是自带下标的,默认也还是从0开始。

# 列表常用的方法
# append() 屁股后追加
# pop() 最后删除,返回值是删除的那个元素
# index(x) 返回元素的下标
# remove(value) l.remove("hello"),删除一个指定值的元素
# sort(self,cmp=None,key=None,reverse=False)  l.sort 排序
# reverse() l.reverse()  反序,无返回值
# insert()   l.insert(3,"ling"),插入指定的位置一个元素

2、dict常用的方法:

get(k)  返回key所对应的value

setdefalut(k , v)  如果ke有不存在,设置一个默认值v,并返回v,如果k存在,返回k反对应的value

keys()  获得所有keys

valus()  获得所有valuse

iteritems()  for i,j in d.iteritems():print(i,j)

注意:python2里有才iteritems()类,而在python3里是items

update()  m.update(n)  m,n都是dict

pop(k)  删除k:v对应的元素

zip(l1 , l2)  高阶函数,dict(zip(l1,l2) 把l1和l2转换成

mm = dict(a=1,b=10,c=3,d=9)

print sorted(mm.iteritems(), key = lambda d:d[1], reverse = True)

二、Python的模块

ython 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

模块让你能够有逻辑地组织你的 Python 代码段。

把相关的代码分配到一个模块里能让你的代码更好用,更易懂。

模块能定义函数,类和变量,模块里也能包含可执行的代码。

例子

下例是个简单的模块 support.py:

def print_func( par ):
   print "Hello : ", par
   return

import 语句

模块的引入

模块定义好后,我们可以使用 import 语句来引入模块,语法如下:

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

比如要引用模块 math,就可以在文件最开始的地方用 import math 来引入。在调用 math 模块中的函数时,必须这样引用:

模块名.函数名

当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。

搜索路径是一个解释器会先进行搜索的所有目录的列表。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 导入模块
import time

一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

from…import 语句

Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:

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

例如,要导入模块 fib 的 fibonacci 函数,使用如下语句:

from fib import fibonacci

这个声明不会把整个 fib 模块导入到当前的命名空间中,它只会将 fib 里的 fibonacci 单个引入到执行这个声明的模块的全局符号表

from…import* 语句

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

from modname import *

这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

例如我们想一次性引入 math 模块中所有的东西,语句如下:

from math import *

time模块
time模块是包含各方面对时间操作的函数. 尽管这些常常有效但不是所有方法在任意平台中有效. time用struct_time表示时间

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/4/23 21:24
# @Author  : yangyuanqiang
# @File    : demon1.py




import time
print(time.localtime())
print(time.localtime().tm_year)

以上实例输出的结果

time.struct_time(tm_year=2018, tm_mon=4, tm_mday=23, tm_hour=21, tm_min=43, tm_sec=44, tm_wday=0, tm_yday=113, tm_isdst=0)
2018

函数

  • time.time(): 返回一个时间戳
  • time.asctime([t]): 转换gmtime()和localtime()返回的元组或struct_time为string.
  • time.clock(): 在第一次调用的时候, 返回程序运行的时间. 第二次之后返回与之前的间隔.
  • time.ctime([secs]): 将时间戳转换为时间字符串, 如没有提供则返回当前的时间字符串,并与asctime(localtime())一样.
  • time.gmtime([secs]): 将时间戳转化为, UTC 时区的struct_time.
  • time.localtime([secs]): 类似gmtime()但会把他转换成本地时区.
  • time.mktime(t): struct_time 转化为时间戳.
  • time.sleep(secs): 线程推迟指定时间, 以秒为单位.
  • time.strftime(format[,t]): 根据参数转换一个sturc_time或元组为字符串.
  • time.strptime(string[, format]): 与strftime相反,返回一个struct_time.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/4/23 21:24
# @Author  : yangyuanqiang
# @File    : demon1.py




import time
# print(time.localtime())
# print(time.localtime().tm_year)

print(time.asctime(time.gmtime()))

print(time.clock())
print(time.sleep(1))
print(time.clock())

print(time.ctime())

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

以上实例输出的结果

Mon Apr 23 13:46:47 2018
0.063216
None
0.063362      #因计算机而异
Mon Apr 23 21:46:48 2018
2018-04-23
1524491208.0

time模块中常用的格式化字符串

  • %y 两位数的年份 00 ~ 99.
  • %Y 四位数的年份 0000 ~ 9999
  • %m 月份 01 ~ 12.
  • %d day 01 ~ 31.
  • %H 时 00 ~ 23.
  • %I 时 01 ~ 12.
  • %M 分 00 ~ 59.
  • %S 秒 00 ~ 61.

datetime模块

datetime模块中包含如下类:

类名功能说明
date 日期对象,常用的属性有year, month, day
time 时间对象
datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
datetime_CAPI 日期时间对象C语言接口
timedelta 时间间隔,即两个时间点之间的长度
tzinfo 时区信息对象

datetime模块中包含的常量

常量功能说明用法返回值
MAXYEAR 返回能表示的最大年份 datetime.MAXYEAR 9999
MINYEAR 返回能表示的最小年份 datetime.MINYEAR 1

date类

date类对象构成

date对象由year年份、month月份及day日期三部分构成:

date(year,month,day)

通过yearmonthday三个数据描述符可以进行访问:

>>> a = datetime.date.today()
>>> a
datetime.date(2018, 4, 23)
>>> a.year
2018
>>> a.month
4
>>> a.day
23

当然,你也可以用__getattribute__(...)方法获得上述值:

>>> a.__getattribute__('year')
2018
>>> a.__getattribute__('month')
4
>>> a.__getattribute__('day')
23

date对象中包含的方法与属性

1、用于日期比较大小的方法
方法名方法说明用法
__eq__(…) 等于(x==y) x.__eq__(y)
__ge__(…) 大于等于(x>=y) x.__ge__(y)
__gt__(…) 大于(x>y) x.__gt__(y)
__le__(…) 小于等于(x<=y) x.__le__(y)
__lt__(…) 小于(x x.__lt__(y)
__ne__(…) 不等于(x!=y) x.__ne__(y)

以上方法的返回值为TrueFalse 

2、ISO标准化日期

如果想要让所使用的日期符合ISO标准,那么使用如下三个方法: 
1).isocalendar(...)*:返回一个包含三个值的元组,三个值依次为:year年份,week number周数,weekday星期数(周一为1…周日为7): 
示例如下

>>> a = datetime.date(2018,4,23)
>>> a.isocalendar()
(2018, 17, 1)
>>> a.isocalendar()[0]
2018
>>> a.isocalendar()[1]
17
>>> a.isocalendar()[2]
1

2). isoformat(...): 返回符合ISO 8601标准 (YYYY-MM-DD) 的日期字符串; 
示例如下

>>> a = datetime.date(2017,3,22)
>>> a.isoformat()
'2017-03-22'

3). isoweekday(...): 返回符合ISO标准的指定日期所在的星期数(周一为1…周日为7) 
示例如下:

>>> a = datetime.date(2017,3,22)
>>> a.isoweekday()
3

4).与isoweekday(...)相似的还有一个weekday(...)方法,只不过是weekday(...)方法返回的周一为 0, 周日为 6 
示例如下:

>>> a = datetime.date(2017,3,22)
>>> a.weekday()
2

日期的字符串输出

1、如果你想将日期对象转化为字符串对象的话,可以用到__format__(...)方法以指定格式进行日期输出:

>>> a = datetime.date(2017,3,22)
>>> a.__format__('%Y-%m-%d')
'2017-03-22'
>>> a.__format__('%Y/%m/%d')
'2017/03/22'
>>> a.__format__('%y/%m/%d')
'17/03/22'
>>> a.__format__('%D')
'03/22/17'

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 当前时区的名称
%% %号本身
原文地址:https://www.cnblogs.com/ivan-yang/p/8921142.html