IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 模块知识点补充 -> 正文阅读

[Python知识库]模块知识点补充



一、绝对导入和相对导入

1.绝对导入

  • 1> 什么是。绝对导入?
  • 依据执行文件的sys.path中的根目录,一层层往下查找
  • 由于pycharm会把项目根目录自动添加到sys.path中去,所以依据项目根目录一层层向下查找是绝对不会出错的
  • 如果不是在pycharm中运行代码,则需要手动将根目录添加到sys.path中去(后期有os模块帮我们自动添加)
  • 2> 代码实现:
from a.b.c import d.py

2.相对导入

  • 1> ’ . ’ 的不同含义
    • . 一个点:意思是当前路径
    • … 两个点:意思是上一层路径
    • …/… 意思是上上一层路径
  • 2> 什么是相对导入?
  • 以当前模块的路径为准,与执行文件的路径无关
  • 3> 特点
    • 相对导入只能在模块中使用
    • 相对导入在项目比较复杂的情况下可能会出错

3.总结

综上所述,更推荐使用绝对导入

二、包

  • 1.什么是包?

    • 含有一个__ init__.py文件的文件夹
  • 2.包的功能?

    • 里面存放多个.py文件(模块文件),便于管理
  • 3.在模块导入的功能上包和普通的文件夹有啥区别?

    • 1> 包:执行文件只能够调用包中__ init__.py文件中有的名字,所以需要自己手动将自定义模块名导入到init文件中去,但是也可以通过绝代查找的方式跳过 init文件,直接把自定义模块导入执行文件
    • 2> 文件夹:可以通过绝对导入的方式包自定义模块导入执行文件
  • 4.导入语法

    • import 包名
import package1

三、编程思想的转变

  • 阶段1:小白阶段:过程式编程思维,每天写面条版代码
  • 阶段2:函数阶段:学会的用函数封装各种功能
  • 阶段3:模块阶段:根据不同的功能将代码拆分到各个模块中去,便于管理和调用

四、软件开发目录规范

  • bin文件夹:存放启动文件start.py (start.py文件也可以直接放到项目根目录下,这样的话系统会自动添加路径)
  • conf文件夹:存放配置文件settings.py
  • core文件夹:存放核心代码文件src.py
  • db文件夹:数据库文件,存放程序所需要调用的数据文件 (后期db文件夹会被数据库取代)
  • log文件夹:存放日志文件,具有记录的功能 (后期项目中log文件夹会被专门的日志服务替代)
  • lib文件夹:用于存放程序的公共功能common.py
  • interface文件夹:用于存放程序的接口文件
  • requirements文件夹:存放第三方模块名称和版本
  • readme文本文件:说明程序的功能和一些相关的资料

五、常见的内置模块

  • 1.collections模块

    • 功能:给我们提供了更多的数据类型

    • 常用的方法

    • 1> nametuple:创建一个命名元组子类的工厂函数

    • 代码实现

    • from collections import namedtuple
      
      point = namedtuple('三维坐标', ['x', 'y', 'z'])  # 书写方式1
      point = namedtuple('三维坐标', 'x y z')  # 书写方式2
      
      res1 = point(1, 2, 3)
      
      print(res1)  # 三维坐标(x=1, y=2, z=3)
      
      print(res1.x)  # 1
      print(res1.y)  # 2
      print(res1.z)  # 3
      
      
    • 实际应用

    • p = namedtuple('扑克', ['花色', '点数'])
      
      res1 = p('红桃', 'K')
      res2 = p('黑方', '5')
      
      print(res1)  # 扑克(花色='红桃', 点数='K')
      print(res2)  # 扑克(花色='黑方', 点数='5')
      
    • 2> deque:双端队列,可以实现两端快速添加(append)和弹出(pop)数据

    • 代码实现

    • from collections import deque
      
      q = deque()
      q.append(111)   
      q.append(222)
      q.append(333)
      q.append(444)
      q.append(555)
      q.append(666)
      print(q)  # [111, 222, 333, 444, 555, 666]
      
      q.appendleft(777)
      print(q)  # [777, 111, 222, 333, 444, 555, 666]
      
      q.pop()
      print(q)  # [777, 111, 222, 333, 444, 555]
      
      q.popleft()
      print(q)  # [111, 222, 333, 444, 555]
      
    • 3> OrderedDict : 有序词典

    • 代码实现

    • from collections import OrderedDict
      
      d = OrderedDict(a=1, b=2, c=3, d=4, e=5)
      print(d)  # OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])
      
    • 4> Counter : 计数功能

    • res1 = 'aaablbblbisllssaa'
      from collections import Counter
      
      res1 = Counter(res1)
      print(res1)  # Counter({'a': 5, 'b': 4, 'l': 4, 's': 3, 'i': 1})
      
  • 2.time模块

    • 1.时间戳:time.time()

    • 代码实现

    • import time
      
      print(time.time())  # 1657785161.7287323
      
    • 2.结构化时间:time.gmtime()

    • 代码实现

    • import time
      
      print(time.gmtime())  # time.struct_time(tm_year=2022, tm_mon=7, tm_mday=14, tm_hour=7, tm_min=54, tm_sec=2, tm_wday=3, tm_yday=195, tm_isdst=0)
      
    • 3.格式化时间strftime(‘%Y-%m-%d %X’)

    • 代码实现

    • import time
      
      print(time.strftime('%Y-%m-%d  %X'))  # 2022-07-14  16:01:08
      print(time.strftime('%Y-%m-%d  %H-%M-%S'))  # 2022-07-14  16:01:08
      
    • 4.不同时间格式之间的相互转换

      • 1> 时间戳和结构化时间之间的相互转换

        import time
        
        a = time.time()  # 时间戳
        b = time.gmtime()  # 结构化时间
        
        print(time.gmtime(a))  # 时间戳>>>结构化时间  
        print(time.mktime(b))  # 结构化时间>>>时间戳
        
      • 2> 格式化时间和结构化时间之间的相互转换

      • import time
        
        b = time.gmtime()  # 结构化时间
        c = time.strftime('%Y-%m-%d  %H-%M-%S')  # 格式化时间
        
        
        print(time.strptime(c, '%Y-%m-%d  %H-%M-%S'))  # 格式化时间>>>结构化时间
        print(time.strftime('%Y_%m_%d %H_%M_%S', b))  # 结构化时间>>>格式化时间
        
      • 3> 图示
        在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:47:30  更:2022-07-20 18:50:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:50:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码