美文网首页
Python基础-day09

Python基础-day09

作者: 陈small末 | 来源:发表于2019-01-11 08:56 被阅读0次

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)

相关文章

网友评论

      本文标题:Python基础-day09

      本文链接:https://www.haomeiwen.com/subject/vchvrqtx.html