ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

713python每日总结birthday

2022-07-13 17:00:37  阅读:157  来源: 互联网

标签:总结 ... 713python birthday 导入 模块 print import 取值


今日内容概要

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

  • 模块

  • 导入模块的两种语法句式

  • 导入模块句式的其他用法

  • 模块查找顺序问题

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

下面将对这段列表代码进行所以取值和迭代取值

l1 = [11, 22, 33, 44, 55]

索引取值

 print(l1[0])        11
 print(l1[1])        22
 print(l1[0])        11

迭代取值

res = l1.__iter__()      #用双下iter方法将l1转化为迭代器,再传给res,随后再通过双下next方法进行取值
print(res.__next__())    #11
print(res.__next__())    #22
print(res.__next__())    #33
print(res.__next__())    #44
print(res.__next__())    #55
print(res.__next__())    #报错

将二者取值对比一下我们不难发现他们之间的差别:

索引取值:
   可以反复的取容器内任意值
   但是对于一些无序的容器(比如字典,集合)类型无法取值
迭代取值:
   可以取任意容器中的值
   但是他的取值是顺序取值而且是不可返回的

二者均有优缺点,具体使用那种要结合实际情况判断。

2.模块

2.1模块简介

  模块是什么?

  模块可以看成一个组装好的工具箱,这个工具箱不止一个,而且每个工具箱都有它独特的功能,
我们在要用的时候选择适合的工具箱,工具箱里面的工具也都有独特的功能。   在python中,我们需要额外的.py文件来承接工具箱也就是模块,
模块中大大小小的函数等就是工具箱中的扳手钳子啊之类的。

2.2模块的分类

  模块大致可以分为三类(内置,第三方,自定义)

1.内置模块
    与之前的内置函数一样是解释器自带的,可以直接使用
    比如time,os    
2.第三方模块
    就是别人写好的模块,然后我们拿过来直接使用就行了
    比如图形识别 图形可视化 语音识别
3.自定义模块
    顾名思义就是我们自己写模块,然后使用
    比如注册功能模块   登录模块

3导入模块的两种句式(import + 要导入模块的文件名     from + 要导入模块的文件名 + import + 模块内元素)

再讲此内容之前我们先来了解一下导入模块的规范

1.在以后的所有项目中,所有的模块的py文件名称都是英文

​     eg:
​        错误的 01.变量的使用
​        正确的 test01.py

2.py文件被当做模块导入的时候不需要考虑后缀

​     eg:
​        import md  #这里的md是md.py模块文件,导入的时候是不需要后缀.py的

3.1import

句式:
    import + 模块的文件名   
eg: import mk

 

 

 

 首先创建一个mk文件和一个执行模块文件

 

 

 在mk模块文件中输入

 

 

 再在执行模块文件中输入

 

 

 输出结果就是

 

 

 由上述我们得出结论

执行文件是 执行模块.py
被导入文件是 mk.py

同时结合之前所学的名称空间一说我们还能得到以下结论

1.会产生执行文件的名称空间
2.产生被导入文件的名称空间并运行该文件内所有的代码 存储名字
3.在执行文件中会获取一个模块的名字 通过该名字点的方式就可以使用到被导入文件名称空间中的名字

import模块导入时名称空间详细

 

 

 同时,如果在一个程序中导入相同的模块,导入语句只会执行一次

3.2 from...import...

语法:from +要导入模块的文件名 + import + 模块内元素

执行流程:

首先在mk中输入这两句话,等下我们要调用mc

 

然后在执行模块中用from...import...导入mc  并把它打印下来

 

 

 结果是

 

 

 

 可见只有mc被打印出来了,而mxiangk没有被执行

相当于from...import...是指名道姓的导入

from...import...模块导入时名称空间详细

 

 

 3.3两种语句的优缺点

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

补充:

当遇到多个模块文件名相同或文件名比较复杂时时,可以给文件名加后缀

   import语句和from...import....语句都可以导入多个名字
      import time, sys, os
      from md import money, read1, read2

 

 

3.4全导入(*)

  需求:需要使用模块名称空间中很多名字 并且只能使用from...import句式
  from md import * # *表示所有
  ps:针对*号的导入还可以控制名字的数量
  在模块文件中可以使用__all__ = [字符串的名字]控制*能够获取的名字

4模块的查找顺序

  

1.先去内存中找
    导入一个文件,在执行过程中删除该导入的文件,发现代码可以继续执行
  2.再去内置中找
    创建模块文件名的时候尽量不要和内置模块名冲突
  3.再去sys.path(程序系统环境变量)中找
    导入模块的时候一定要知道谁是执行文件
      所有的路径都是参照执行文件来的
      import sys
      sys.path.append(r'D:\pythonProject\day22\xxx')
      import mdd
      print(mdd.name)
    

 

标签:总结,...,713python,birthday,导入,模块,print,import,取值
来源: https://www.cnblogs.com/scx-xiaochun/p/16474513.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有