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

python的学习

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

python的学习

迭代取值与索引取值的差异
l1 = [11, 22, 33, 44, 55]

索引取值

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

迭代取值

res = l1.__iter__()
print(res.__next__())
print(res.__next__())
print(res.__next__())

索引取值:
优势:可以随意反复的获取任意数据值
劣势:针对无序的容器类型无法取值
迭代取值:
优势:提供了一种通用的取值方式
劣势:取值一旦开始只能往前不能回退

模块简介 1.如何理解模块

模块可以看成是一部分功能的结合体,使用模块就相当于拥有了结合体的所有功能。“拿来主义”’

2.模块的分类 2.1.内置模块

解释器自带的并且可以直接使用的模块
例如:
import time
time.sleep

2.2.自定义模块

自己写的并定义的模块

2.3.第三方模块

别人写好的模块,存在于网络上,并且可以下载使用的模块

3.模块的表现形式

1.py文件(py文件也可以称之为是模块文件)
2.含有多个py文件的文件夹(按照模块功能的不同划分不同的文件夹存储)
3.已被编译为共享库或DLL的c或C++扩展(了解)
4.使用C编写并链接到python解释器的内置模块(了解)

导入模块的两种句式

补充说明
以后真正的项目中 所有的py文件名称都是英文
学习模块的时候 模块文件的名称就得用英文
py文件被当做模块导入的时候不需要考虑后缀

句式1: import句式
#文件名 md.py
import md  #执行导入的文件
md.py    #被导入的文件 

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

句式2:from…import…句式
#文件名 md.py
from md import money  # 指名道姓的导入
print(money)  # 999
money = '嘿嘿嘿'
print(money)  # 嘿嘿嘿
print(read1)
print(md.read1())

from md import money, read1
read1()

“”"
1.创建执行文件的名称空间
2.创建被导入文件的名称空间
3.执行被导入文件中的代码 将产生的名字存储到被导入文件的名称空间中
4.在执行文件中获取到指定的名字 指向被导入文件的名称空间
“”"

补充说明:

1.同一个程序反复导入相同的模块,导入语句只能执行一次
2.用import语句导入多个模块,可以写多行import语句

import xxx1
import xxx2
import xxx3
  ......
import xxxn

还可以在一行导入,用逗号分隔开不同的模块

import xxx1,xxx2,xxx3,...,xxxn

其实第一种形式更为规范,可读性更强,推荐使用
3.起别名(as)
情况1:
多个人写了多个模块但是文件名相同
可以用起别名这样的方式来区分

from md import money as md_my
from md1 import money as md1_my
print(md_my)
print(md1_my)

情况2:
原有的模块文件名复杂。可以通过起别名的方式来简化
4.全导入
需求:需要使用模块名称空间中很多名字 并且只能使用from…import句式
from md import * # 表示所有
ps:针对
号的导入还可以控制名字的数量
在模块文件中可以使用__all__ = [字符串的名字]控制*能够获取的名字

两种导入句式的优缺点

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

循环导入问题

1.如何理解循环导入:
循环导入就是两个文件彼此导彼此

2.循环导入容易出现报错现象
使用彼此的名字可能是在没有准备好的情况下就使用了

3.如何解决循环导入保存现象
彼此在使用彼此名字之前 先准备好

“”“循环导入将来尽量避免出现!!! 如果真的避免不了 就想办法让所有的名字在使用之前提前准备好”“”

判断文件类型

学习完模块之后 以后我们的程序运行起来可能涉及到的文件就不止一个

所有的py文件中都自带一个__name__内置名
当py文件是执行文件的时候 name__的结果是__main
当py文件是被导入文件的时候 __name__的结果是模块名(文件名)

__name__主要用于开发模块的作者测试自己的代码使用
if name == ‘main’:
当文件是执行文件的时候才会执行if的子代码

上述判断一般只出现整个程序的启动文件中

ps:在pycharm中可以直接编写main按tab键自动补全

模块的查找顺序

1.已加载到内存中,则直接引用

导入一个文件 然后在导入过程中删除该文件 ,及时删除了但是还是可以使用,如果删除就无法引用

import md
import time

time.sleep(15)
print(md.money)

2.查找内置模块

文件名尽量不要和内置模板相同

import time
print(time.time())
from time import name
print(name)

3.从左到右的顺序依次检索sys.path中定义的路径,直到找模块对应的文件为止

导入模块的时候一定要知道谁是执行文,所有的路径都是参照执行文件来的

import sys
sys.path.append(r'')
import mdd
print(mdd.name)

“”"
1.通用的方式
sys.path.append(目标文件所在的路径)
2.利用from…import句式
起始位置一定是执行文件所在的路径
from xxx import mdd
“”"

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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