1.1 模块
模块就是后缀名是 .py。模块可以被别的函数调用。
1.2 命名空间
1.2.1 内置命名空间 :程序运行就存在。
1.2.2 全局命名空间:每个模块有自己所拥有的全局命名空间,不同模块的全局命名空间彼此相互独立。
1.2.3 本地命名空间:模块中有函数或者类,每个函数或者类所定义的命名空间就是本地命名空间。如果函数返回了结果或者抛出异常,则本地命名空间也结束了。
关系就是 1 > 2 > 3
1.3 导入模块
1.3.1 import 模块
1.3.2 from 模块 import 函数名
1.3.3 import 模块 as 新名字
1.4 if__name__ == ‘main’
当.py直接运行是,代码被运行;当被调用时,不运行。
1.5 搜索路径
解释器遇到import 语句,模块在当前的搜索路径中就会被导入。(模块名.path)
1.6 包
管理模块命名空间;文件夹含有__init__.py; 相关模块放在文件夹下。
1.7 习题1
利用help函数查看function。
1.8 习题2
难点就是利用Counter模块计算值出现的次数。
"""
Input file
language = ['PHP', 'PHP', 'Python', 'PHP', 'Python', 'JS', 'Python', 'Python','PHP', 'Python']
Output file
Python
"""
def most_element(language):
""" Return a list of lines after inserting a word in a specific line. """
from collections import Counter
def most_element(language):
""" Return a list of lines after inserting a word in a specific line. """
m = Counter(language) #Counter: 用来跟踪值出现的次数。
for key, value in m.items():
if (value == max(m.values())):# 寻找值出现最大次数的键值。
return key
language = ['PHP', 'PHP', 'Python', 'PHP', 'Python', 'JS', 'Python', 'Python', 'PHP', 'Python']
print(most_element(language))
Python
2、 datetime模块
2.1 datetime类
import datetime
dt = datetime.datetime(year=2020, month=9, day=29, hour=16, minute=5, second=00)
print(dt)#输出当前时间
print(dt.timestamp())#输出从1970年1月1日为起点到现在的秒数
dt = datetime.datetime.fromtimestamp(1601366700.0)
print(dt)# 将从1970年1月1日为起点到现在的秒数,转换为按年月日时分秒的时间
print(type(dt))#打印dt类型
dt = datetime.datetime.now()
print(dt)#打印当前时间
print(type(dt))#打印dt类型
2020-09-29 16:05:00
1601366700.0
2020-09-29 16:05:00
<class 'datetime.datetime'>
2020-09-29 16:05:54.841972
<class 'datetime.datetime'>
import datetime
dt = datetime.datetime(year=2020, month=9, day=29, hour=16, minute=25, second=22)
s = dt.strftime("%Y/%m/%d %p %H:%M:%S")
print(s)
s = dt.strftime('%d %B %Y %A 第%j天/%U周')
print(s)
2020/09/29 PM 16:25:22
29 September 2020 Tuesday 第273天/39周
ps:使用PyCharm缺少模块,在B站搜索可以建立阿里云镜像,快速下载。
链接:https://www.bilibili.com/video/BV1E54y1k7fh/
将字符串转为日期
from dateutil import parser
s = '2020-09-29'
dt = parser.parse(s)
print(dt)
print(type(dt))
s = 'Sep 29, 2020, 05:22pm'#这里你可以随便写 不按照顺序的
dt = parser.parse(s)
print(dt)
print(type(dt))
2020-09-29 00:00:00
<class 'datetime.datetime'>
2020-09-29 17:22:00
<class 'datetime.datetime'>
import numpy as np
from dateutil import parser
dateString = ['Oct, 2, 1869', 'Oct, 10, 1869', 'Oct, 15, 1869', 'Oct, 20, 1869', 'Oct, 23, 1869']
dates = [parser.parse(i) for i in dateString]
td = np.diff(dates)
print(td)
d = [i.days for i in td]
print(d)
[datetime.timedelta(days=8) datetime.timedelta(days=5)
datetime.timedelta(days=5) datetime.timedelta(days=3)]
[8, 5, 5, 3]
2.2 date类
import datetime
d = datetime.date(2020, 9, 28)
print(d)
print(type(d))
d = datetime.date.today()
print(d)
print(type(d))
2020-09-28#昨天的日期
<class 'datetime.date'>
2020-09-29#今天的日期
<class 'datetime.date'>
'时间段内的 星期六 个数'
import datetime
d1 = datetime.date(1868, 4, 4)
d2 = datetime.date(1869, 10, 2)
dt = (d2 - d1).days
print('一共是相差',dt,'天')
print(d1.isoweekday())# 返回1-7,代表周一到周日,当前时间所在本周第几天;
print(dt // 7 + 1)#地板除+1
一共是相差 546 天
6
79
2.3 time类
import datetime
date = datetime.date(2020, 10, 1)
dt = datetime.datetime(date.year, date.month, date.day)
print(dt)
dt = datetime.datetime.combine(date, datetime.time.min)
print(dt)
2020-10-01 00:00:00
2020-10-01 00:00:00
2.4 timedelta类
表示一段时间的时间差
import datetime
td = datetime.timedelta(days=30)
print(td)
print(type(td))
print(datetime.date.today())
print(datetime.date.today() + td)
dt1 = datetime.datetime(2020, 9, 29, 10, 10, 0)
dt2 = datetime.datetime(2019, 10, 29, 10, 10, 0)
td = dt1 - dt2
print(td)
print(type(td))
td1 = datetime.timedelta(days=30)
td2 = datetime.timedelta(weeks=1)
td = td1 - td2
print(td)
print(type(td))
30 days, 0:00:00
<class 'datetime.timedelta'>
2020-09-29
2020-10-29
336 days, 0:00:00
<class 'datetime.timedelta'>
23 days, 0:00:00
<class 'datetime.timedelta'>
import datetime
dt1 = datetime.datetime(1997, 4, 11, 00, 00, 00)
dt2 = datetime.datetime(2020, 9, 29, 00, 00, 00)
dt3 = datetime.datetime(2021, 4, 11, 00, 00, 00)
td = dt2 - dt1
td4 = dt3 - dt2
print("你已经活了",td,"天")
print("距离下个生日还有", td4,"天")
print(td4.total_seconds())
你已经活了 8572 days, 0:00:00 天
距离下个生日还有 194 days, 0:00:00 天
16761600.0