“”"
##############################################
只要涉及到模块的导入 那么sys.path永远以执行文件为准
##############################################
“”"

储备知识
.在路径中意思是当前路径
…在路径中意思是上一层路径
…/…在路径中意思是上上一层路径
相对导入可以不参考执行文件所在的路径 直接以当前模块文件路径为准
1.只能在模块文件中使用 不能在执行文件中使用
2.相对导入在项目比较复杂的情况下 可能会出错
ps:相对导入尽量少用 推荐使用绝对导入
包就是一个含有__init__.py文件的文件夹
2.包的作用内部存放多个py文件(模块文件) 仅仅是为了更加方便的管理模块文件3.具体使用
import 包名 导入包名其实导入的是里面的__init__.py文件(该文件里面有什么你才能用什么) 其实也可以跨过__init__.py直接导入包里面的模块文件
“”"
针对python3解释器 其实文件夹里面有没有__init__.py已经无所谓了 都是包
但是针对Python2解释器 文件夹下面必须要有__init__.py才能被当做包
“”"
用于存储程序的启动文件 start.py
2.conf文件夹用于存储程序的配置文件 settings.py
3.core文件夹用于存储程序的核心逻辑 src.py
4.lib文件夹用于存储程序的公共功能 common.py
5.db(database)文件夹用于存储程序的数据文件 userinfo.txt
6.log文件夹用于存储程序的日志文件 log.log
7.interface文件夹用于存储程序的接口文件
8.readme文件(文本文件)用于编写程序的说明,介绍,广告类似于产品说明书
9.requirements.txt用于存储程序所需的第三方模块名称和版本
常见内置模块 1.collections模块提供更多数据类型
1.1 namedtuple 具名元组用法
Point = namedtuple('二维坐标系', ['x', 'y'])
res1 = Point(1, 3)
res2 = Point(10, 49)
print(res1, res2)
print(res1.x)
print(res1.y)
Point = namedtuple('三维坐标系', 'x y z')
res1 = Point(1, 3, 44)
res2 = Point(10, 49, 55)
print(res1, res2)
2.1 deque 队列
队列 :先进先出
堆栈 :后进先出
deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈:
from collections import deque q = deque() q.append(111) q.append(222) q.append(333) q.append(444) q.appendleft(555) print(q)
deque除了实现list的append()和pop()外,还支持appendleft()和popleft(),这样就可以非常高效地往头部添加或删除元素。
3.1OrderedDict 有序字典
使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。
如果要保持Key的顺序,可以用OrderedDict:
from collections import OrderedDict
d = dict([('a', 1), ('b', 2), ('c', 3)])
print(d)
od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
print(od)
# 有如下值集合 [11,22,33,44,55,66,77,88,99,90],
# 将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
# {'k1':[], 'k2':[]}
from collections import defaultdict
res = defaultdict(k1=[],k2=[])
print(res)
new_dict = {}
for i in res:
if i not in new_dict:
new_dict[i] = 1
else:
new_dict[i] += 1
print(new_dict)
from collections import Counter
res1 = Counter(res)
print(res1)
2.时间模块之time模块
时间的三种格式
1.时间戳 time.time()通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。2.结构化时间 time.gmtime() 3.格式化时间 time.strftime()
)#(时间戳) #UTC时间,与英国伦敦当地时间一致 print(time.localtime())#(时间戳) #当地时间。东八区北京时间 >>>time.struct_time(tm_year=2022, tm_mon=7, tm_mday=14, tm_hour=13, tm_min=12, tm_sec=26, tm_wday=3, tm_yday=195, tm_isdst=0) >>>time.struct_time(tm_year=2022, tm_mon=7, tm_mday=14, tm_hour=21, tm_min=12, tm_sec=26, tm_wday=3, tm_yday=195, tm_isdst=0)暑期编程PK赛 得CSDN机械键盘等精美礼品!



