列表生成式
快速的在内存中生成一批符合要求的数据。
格式:
[元素 元素的来源 元素的筛选]
生成器
(元素 元素的来源 元素的筛选)
值一旦取出,生成器中就没有了。
使用next方法,一个一个取值
ge-obj = (ele for ele in range(1,101))
value = next(ge_obj)
print(value)
一次只取一个。
yield i 不会中断函数 如果yield后面什么都没有,获取的数据是空。
可迭代对象与迭代器
可迭代对象 是可以遍历的序列。
可以进行遍历的序列 有一个共同类型iterable 通过next方法在序列中取值。
from collections import Iterable,Iterator
Iterable 可迭代的 Iterator 迭代器
判断数据类型
isinstance(数据,类型)
判断对象是否是迭代的或是否是迭代器
print(instance(10,Iterable))
可迭代类型不一定是迭代器类型
迭代器类型的特点通过next方法取出序列中的数据。
将可迭代类型的数据转换为迭代类型的数据,使用iter(可迭代对象)
模块与包
包:对文件进行分类管理 以及提供多级命名空间。
命名规则:所有的字母都是小写
单词之间使用下划线隔开。
不能使用python中的关键字。
包之间的分隔符是.
导入方式:
import 一级包名.二级包名...n级包名.模块名
包名长时:
import 一级包名.二级包名..n级包名.模块名 as 别名
form . import *
__all__ = ['函数名'] 只限制当前导入的方式,其他导入方式无效。
每个新创建的包里有一个__init__.py文件
标记当前文件是个包
模块的分类
系统模块 自定义模块 第三方模块
安装第三方模块是使用pip
格式:pip install 第三方包名
如果网速或者下载不了,请更换下载源
格式:pip install 第三方包名 -i 下载源
常用的下载源
阿里云
https://mirrors.aliyun.com/pypi/simple/
中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban)
https://pypi.douban.com/simple/
清华大学
https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/
常用模块
time模块
时间戳: 1970 1.1 到指定时间多经历的秒数。
import time
time.localtime() 获取当前时间 以时间元组返回 :
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=21, tm_hour=11, tm_min=28, tm_sec=37, tm_wday=5, tm_yday=264, tm_isdst=0)
可以对数组按索引进行取值。
星期是从星期一开始的,数字是从0开始的。
time.time() 获取当前时间的时间戳
1569036641.2588496
自定义时间
time.mktime(年,月,日,时,分,秒,星期,天数,0)
将时间戳转化为时间元组
time.gmtime() 差一个时区
time.loacltime() 本地的时间
将时间元组转化为字符串格式
time.asctime()
将时间戳转化为可读的字符串
time.ctime()
时间格式化
%w 星期几 %j一年中的第几天 %z 表示的时区 %u一年中的第几个星期 %i12小时制
%p标记上下午
将时间元组格式转化为字符串格式
time.strptime("%Y/%m%d %H:%M:%S %w %j",t)
datetime
datetime.datetime.now() 获取当前时间
自定义时间
datetime.datetime(2019,12,25,6,23,25)
时间格式化
.strftime("%Y-%m-%d %p %I:%M:%S")
反格式化
datetime.datetime.strptime("%Y-%m-%d %p %I:%M:%S")
日历模块
calendar
#获取指定年的日历信息
res = calendar.calendar(2019) #字符串类型
#获取指定月的日历信息:
calendar.month(9)
#判定指定年是否是闰年
calendar.isleap(year)
#获取指定两年之间的闰年的年数
calendar.leapdays(1999,2019)
#指定月的日历以每周一分存于列表
caleendar.monthcalendar(2019,9)