栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python的学习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python的学习

绝对导入和相对导入:

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

绝对导入

![在这里插入图片描述](https://img-blog.csdnimg.cn/7bb6cc9075ef4176928304394af6a449.png#pic_center
ps:由于pycharm会自动将项目根目录添加到sys.path中所以查找模块肯定不报错的方法就是永远从根路径往下一层层找
如果不是用pycharm运行 则需要将项目跟目录添加到sys.path(针对项目根目录的绝对路径有模块可以帮助我们获取>>>:os模块)

相对导入

储备知识
.在路径中意思是当前路径
…在路径中意思是上一层路径
…/…在路径中意思是上上一层路径
相对导入可以不参考执行文件所在的路径 直接以当前模块文件路径为准
1.只能在模块文件中使用 不能在执行文件中使用
2.相对导入在项目比较复杂的情况下 可能会出错
ps:相对导入尽量少用 推荐使用绝对导入

包的概念 1.包的介绍

包就是一个含有__init__.py文件的文件夹

2.包的作用
内部存放多个py文件(模块文件)  仅仅是为了更加方便的管理模块文件
3.具体使用
import 包名
导入包名其实导入的是里面的__init__.py文件(该文件里面有什么你才能用什么)
其实也可以跨过__init__.py直接导入包里面的模块文件

“”"
针对python3解释器 其实文件夹里面有没有__init__.py已经无所谓了 都是包
但是针对Python2解释器 文件夹下面必须要有__init__.py才能被当做包
“”"

软件开发目录规范 1.bin文件夹

用于存储程序的启动文件 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()

![在这里插入图片描述](https://img-blog.csdnimg.cn/be8b04cdaae4408fafe90b2fe7a4080b.png#pic_center
小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

几种格式之间的转换
import time
print(time.gmtime())#(时间戳)    #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机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015368.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号