包的概念、开发目录规范、常见内置模块知识合集

1|0包的概念、开发目录规范、常见内置模块知识合集

1|1一、包的具体使用

1.什么是包 包就是内部含有__init__文件的文件夹,该文件夹可包含多个模块文件,包也可以理解为管理多个模块文件的文件夹 2.包有什么用 包的作用就是包含多个模块,例如我们下载第三方模块numpy时,模块下会产生一个numpy文件夹,里面包含了numpy管理的多个模块 3.使用 eg: from demo import a,b # 导入包名就是导入里面的__init__文件,该文件内有什么名字就可以通过包名点什么名字使用
在Python解释器中,包文件夹内有没有__init__.py文件已经不重要了,但是在Python2中解释器中文件夹必须用__init__.py文件才能当做一个包,不然他只是一个文件

1|2二、编程思想的转变

目前会经历的三个阶段: 1.小白阶段 懂得不多,写代码的时候只会像面条一样从上往下的逻辑写,全部堆在一起 2.函数阶段 有了一点的函数思维了,根据功能封装不同的函数,然后进行调用 3.模块阶段 能够应用别人的东西写简洁的代码,根据功能的不同拆分成不同的py文件

1|3三、软件开发目录规范

为什么要规范文件目录? 为了程序的可读性和可维护性,当我们吧项目文件进行分类之后大大提高了后期的维护和查看,只需要到对应的文件夹名下找到具体的文件进行查看就好了
文件名 作用 写法
bin文件夹 用于存放项目的启动文件 start.py
conf文件夹 用于存放配置文件 setting.py
core文件夹 用于存放核心逻辑文件 src.py
db文件夹 用于存放数据文件 userinfo.py
lib文件夹 用于存放程序的公共功能文件 common.py
log文件夹 用于存放日志文件 log.log
interface文件夹 用于存放接口文件 user.py/order.py
readme文件夹 用于存放项目的说明书 /
requirements文件夹 用于存储程序所需的第三方模块名和版本 requirements.txt

1|4四、常见内置模块之collections

1|01.具名元组namedtuple

from collections import namedtuple point = namedtuple('坐标系',['x','y']) res = point(99,66) print(res) # 坐标系(x=99, y=66) print(res.x) # 99
from collections import namedtuple card = namedtuple('扑克牌', ['num', 'color']) c1 = card('J', '红♠') c2 = card('K', '黑♥') print(c1, c1.num, c1.color) # 扑克牌(num='J', color='红♠') J 红♠ print(c2, c2.num, c2.color) # 扑克牌(num='K', color='黑♥') K 黑♥

1|02.双端队列deque

from collections import deque a = deque() a.append(11) a.append(22) a.appendleft(999) print(a) # deque([999, 11, 22])
队列与堆栈: 队列:先进先出 堆栈:先进后出

1|03.有序字典OrderedDict

from collections import OrderedDict d = dict([('a',1),('b',2),('c',3)]) print(d) # {'a': 1, 'b': 2, 'c': 3} od = OrderedDict([('a',1),('b',2),('c',3)]) print(od) # OrderedDict([('a', 1), ('b', 2), ('c', 3)])

1|04.计数Counter

from collections import Counter res = 'ahhgggasdggdhhdsgcsxshshhsggahaaaa' res1 = Counter(res) print(res1) # Counter({'h': 8, 'g': 8, 'a': 7, 's': 6, 'd': 3, 'c': 1, 'x': 1})

1|5五、常见内置模块之时间模块

1|01.常见时间格式化符号

符号 属性
%y 表示年份(00-99)
%m 表示月份(1-12)
%d 表示一年中的天数(1-31)
%H 表示24小时制的时数(0-24)
%I 表示12小时制的时数(0-12)
%M 表示分钟(0-59)
%S 表示秒数(0-59)
%w 表示星期几
%X 表示当地的日期表示

1|02.时间戳

时间戳表示从1970-1-1-0时到现在经过了多长时间 import time now = time.time() print(now) # 1666168383.992469 print(time.localtime()) # time.struct_time(tm_year=2022, tm_mon=10, tm_mday=19, tm_hour=16, tm_min=33, tm_sec=3, tm_wday=2, tm_yday=292, tm_isdst=0) print(time.strftime('%Y-%M-%d')) # 2022-10-19 print(time.strftime('%Y-%M-%d %H:%M:%S')) # 2022-10-19 16:35:16 print(time.strftime('%Y-%M-%d %X')) # 2022-10-19 16:35:16 # strftime格式化时间

1|03.格式化时间

from datetime import d=datetime.strptime('2017/9/30','%Y/%m/%d') print(d) # 2017-09-30 00:00:00 e=datetime.strptime('2017年9月30日星期六','%Y年%m月%d日星期六') print(e) f=datetime.strptime('2017年9月30日星期六8时42分24秒','%Y年%m月%d日星期六%H时%M分%S秒') print(f) # strptime 按照特定时间格式将字符串转换为时间类型

1|6六、常见内置模块之随机数模块

产生图片验证码 def get_code(n): code = '' for i in range(n): range_upper = chr(random.randint(65,90)) range_lower = chr(random.randint(97,122)) range_int = str(random.randint(0,9)) temp = random.choice([range_upper,range_lower,range_int]) code += temp return code res = get_code(5) print(res) # 9UhL6

__EOF__

本文作者泡芙有点甜
本文链接https://www.cnblogs.com/zx0524/p/16806968.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   小王应该在学习!  阅读(176)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示