list
模块
程序主入口
第三方模块
自定义包
sorted
高阶函数
日期时间
模块和程序入口
模块(一个.py文件):提供额外功能,可以提高代码复用性 还可以使程序模块化
导入时起别名:
给模块起
import 模块名 as 别名
给模块内的成员其别名
from xxx import 成员 as 别名
当from xxx import *的时候 如果我们在xxx里的一些成员不想被外部使用 那么我们可以使用__all__ = ["放你想暴露的成员"]
程序入口
我们程序运行的开始位置
__name__ 在主文件 打印结果是__main__
在非主文件(模块文件) 打印的时候是模块的名字
if __name__ == "__main__":
第三方模块
系统:time functool keyword
自定义模块
第三方:其他组织 或个人编写的 开源的python模块
管理:pip 是管理python第三方包
pip命令
(python -m) pip install 包名==版本号 安装
uninstall 包名 卸载
list 查看已经安装的包
freeze 查看已经安装的包
freeze >> 文件 把已经安装的包写到文件
install -r 文件名 根据文件里写的包和对应的版本依次安装
Django Flask web.py pandads numpy PIL(Pillow) pygame itchat ....
uuid 生成唯一标示
import uuid
res = uuid.uuid4()
# print(res)
res = str(res).replace("-", "")
print(res[:4])
自定义包
常识:同一个文件夹下边 不能有同名的文件
包:帮我们完成多文件命名
形式:
在目录下有一个__init__.py的文件 一般用来初始化
包和目录的区别:
包里有初始化文件
python2 不能在目录下导入一个模块 而必须要使用包的形式
python3是可以再目录下导入模块文件
导入包
from 包名.文件名 import 成员
from suibian.file_one import add
或者from suibian import file_one
sorted
排序(不改变原来的值)会产生新的列表
参数:iterable 放一个可以迭代对象
key 指定排序的方式
reverse 默认是Fasle表示升序,如果设置成True那么是降序
普通列表排序
a = ["abd",'ks', 'jeje']
# a.sort(key=len, reverse=True)
# print(a)
res = sorted(a, key=len, reverse=True)
字典
dict_data = {"语文":59, "数学": 79, "化学":90, "物理":30, "python": 100}
# if "yu" in dict_data:
res = sorted(dict_data.items(), key=lambda item:item[1])
列表套字典
a = [{"name":"dada", "age":18},
{"name": "tom", "age":16},
{"name": "old tom", "age":80},
{"name": "xiaoming", "age":6}
]
def key1(item):
return item['age']
res = sorted(a, key=lambda item:item["age"], reverse=True)
高阶函数
map(func, 序列)
[func(i) for i in 序列]
功能:将序列的每一项放入到func这个函数里执行
reduce(func, 序列)
功能:func函数 接收两个参数,将两个数结果累计然后继续与下一个元素结果累计的过程
res = reduce(add, [1,2, 3, 4, 5])
相当于:(((1+2)+3)+4)
filter 过滤
filter(func, 序列)
func需要一个参数
如果func返回了True 那就保留 否则剔除掉
时间
时间戳:
1970年1月1日零时到现在经历的秒数
time
时间格式化的占位符
%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 本地AM.或PM.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%% %号本身
操作
import time
# 拿时间戳
res = time.time()
print(res)
#获得当前时间的元组
res = time.localtime(1539244193.6709678)
print(res)
# 休眠函数
# time.sleep(5)
# print("睡醒了")
#时间的格式化
f_str = time.strftime("%Y-%m-%d %p %I:%M:%S", res)
print(f_str)
#
time_str = '2018-10-11 PM 03:49:53'
# 将字符串变成时间
my_time = time.strptime(time_str, "%Y-%m-%d %p %I:%M:%S")
print(my_time)
# 给出时间元组 获得时间戳
res = time.mktime(time.localtime())
datetime
年份的最大值是9999
最小是1
# 时间的替换
print(today.replace(minute=0, second=0))
# 时间的加减
res = today + datetime.timedelta(days=1,minutes=60)
print(res)
# 将时间转字符串格式化
res = datetime.datetime.now().strftime("%Y/%m/%d")
print(res)
# 字符串转时间
res = datetime.datetime.strptime('2018/10/11', "%Y/%m/%d")
print(res)
import datetime
res = datetime.datetime.now()
print(res)
today = datetime.datetime.today()
print(today)
# 转成时间元组
print(today.timetuple())
calendar
日历
import calendar
# calendar.
res = calendar.calendar(2018)
print(res)
# 某年某月的日历
res = calendar.month(2018, 10)
print(res)
# 某年某月的日期在星期上的表现(二维的列表)
res = calendar.monthcalendar(2018,10)
print(res)
# 判断是是闰年
res = calendar.isleap(2018)
print(res)
网友评论