热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

7.13模块简介

今日内容迭代取值与索引取值的差异l1[11,22,33,44]索引取值优势:可以随时反复的取值劣势:对无序的容器类型无法取值print(l1[1])#22print(l1[0]

今日内容

迭代取值与索引取值的差异

l1 = [11, 22, 33, 44]
索引取值
优势:可以随时反复的取值
劣势:对无序的容器类型无法取值
print(l1[1]) # 22
print(l1[0]) # 11
print(l1[1]) # 22
迭代取值
优势:提供了一种通用的取值方式
劣势:取值只能往前不能后退
res = l1.__iter__()
print(res.__next__()) # 11
print(res.__next__()) # 22
print(res.__next__()) # 33
使用那种方法需要结合具体实际情况

模块简介

'''
python的屈辱史
python刚开始出来的时候都被其他程序员瞧不起 因为太简单 写代码都是调用模块 调包侠(贬义词)
随着业务的扩展其他程序员也开始用python写代码写完之后发现python贼好用 真香定律 调包侠(褒义词)
'''
1.模块可以看成是一系列功能结合体
使用模块就相当于拥有了这个结合体内的所有功能 如虎添翼
2.模块的分类
2.1.内置模块
解释器自带的 可以直接使用的模块
eg:
import time
time.sleep(2)
2.2.自定义模块
直接写的模块
eg:
注册功能 登录功能
2.3.第三方模块
别人写的模块 存于网络上 使用之前需要提前下载
eg:
图像识别 图形可视化 语言识别
3.模块的四种形式
1.py文件 使用python编写的文件也可以称之为模块文件
2.含有多个py文件的文件夹(按照模块功能的不同划分不同的文件夹储存)
3.已被编译为共享库或DLL的C或C++扩展
4.使用C编写并链接到python解释器的内置模块

导入模块的两种语法句式

导入模块的句式1 import

image


import md
1.会产生执行文件的名称空间
2.产生被导入文件的名称空间并运行该文件的所有代码 储存名字
3.在执行文件中会获取一个模块的名字 通过该名字点的方式就可以使用到被导入文件名称空间中的名字
之后的导入 都是直接引用首次导入产出的md.py名称空间 不会重复执行代码
import md # 有效
import md # 无效
import md # 无效
导入模块的句式2 from...import...句式
1.创建执行文件的名称空间
2.创建被导入文件的名称空间
3.执行被导入文件中的代码 将产生的名字储存到被导入文件的名称空间中
4.在执行文件中获取到指定的名字 指向被导入的名称空间

两种导入句式的优缺点

import md
优点:通过md点的方式可以使用到模块内所有的名字 并且肯定不会与当前名称空间的名字冲突
缺点:md什么都可以点 有时候并不想让所有的名字都被使用
from md money, func
优点:指明道姓的使用指定的名字 并且不需要加模块名前缀
缺点:名字容易与当前名字空间冲突,(绑定关系被修改)

补充知识

1.起别名
情况1:多个模块文件相同(多个人写)
from md import money as md_my
from foo import money as foo_my
情况2:原有模块名字比较复杂
import md as m
print(m)
2.导入多个名字
from md import time, sys, os
上述导入方式多个功能相似才适应 不相似不推荐使用
import time
import sys
import os
from md money,func,func1
上述导入方式推荐使用,多个名字都出自同一个模块
3.全导入
from md import * # 表示所有
ps:针对星号的导入还可以控制名字的数量
在模块文件中可以使用__all__ = [字符串的名字]控制*能够获取的名字

循环导入问题

如何理解循环导入
循环导入就是两个文件彼此导彼此
循环导入容易出现报错现象
使用彼此名字时可能没准备好是的情况下就使用了
如何解决导入保存现象
在彼此使用名字前 现准备好
'''循环导入在将来避免出现 如果避免不了 就想办法让所有的名字在使用前准备好'''

判断文件类型

学习完模块之后 我们的程序运行起来可能就是涉及到一个文件了
所有的py文件都是自带一个__name__内置名
当py文件是执行文件的时候 __name__的结果是__main__

__name__主要用于开发模块的作者测试自己的代码使用
if __name == '__main__':
当文件是执行文件的时候才会执行if的子代码
上述判断只会出现整个程序的启动文件中
在pycharm中可以直接编写main+tab键自动补全

模块的查找顺序

'''
1.先去内存中查找
2.再去内置中查找
3.再去sys.path中查找(程序系统的环境变量)
'''
1.导入一个文件 然后在导入过程中删除 依然还可以使用
import md
import time
time.time(15)
print(md.money)
2.创建一个跟内置模块名相同的文件
import time
print(time.time()) # 1657709180.0668466
print(time.name)
3.导入模块的时候一定要知道谁是执行文件
所有路径都是参照执行文件来的
import sys
sys.path.append(r'被导入文件路径')
1.通用方式
sys.path.append(r'目标文件所在路径')
2.利用from...import方式
from 目标文件路径 import ...
起始位置一定是执行文件所在路径


推荐阅读
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了如何在wxpython中将matplotlib图表嵌入到自定义窗体中的方法。通过调用FigureCanvasWx类,可以实现在自定义窗体中显示matplotlib图表。同时,还介绍了与此相关的一些类和参数。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
author-avatar
秋夜里的寂寞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有