**
一、__all__语法
1.__all__作用:
导入模块语法:
a.import 模块名
b.from 模块名 import 函数名1,函数名2,类名1,类名2...
c.from 模块名 import *(通配符,一次性导入模块所有内容)
from 模块名 import * 导入内容太多不一定全部用,浪费空间
可通过 __all__ = ['类名','函数名','变量名'] 限制(只能导入列表中的内容)
**
二、包
1.标准包中有 init.py 文件,是一个目录
a.包的作用:管理多个模块/包
b.包的使用:
from 包名 import 模块名
from 包名.模块名 import 函数/类/变量
from 包名.模块名 import *
from 包名 import * # 一次性导入包中所有模块
c.关于 from 包名 import *:
缺点:导入很多模块及内容到内存中,python要求必须限制能够导入的模块
解决:在__init__.py 文件中通过 __all__ = ['模块名'] 指定能够导入的模块
**
三、集合操作
1.用于去重
集合可以运算
交集:&
并集:|
差集:-
2.实例
#上语文课的名单
yw = ['张飞','李四','王五','貂蝉','小乔','大乔']
#选数学
sx = ['貂蝉','小乔','大乔','周瑜','诸葛亮']
#同时选语文和数学的名单
result = list(set(yw) & set(sx))
print(result)
#只选择语文课的同学名单
result = list(set(yw) - set(sx))
print(result)
#全部同学名单
result = list(set(yw) | set(sx))
print(result)
**
四、给程序传参数
1.给程序传参数
指给python.exe传递参数
a.传递参数方式:
python.exe 脚本路径 参数2 参数3 ...
b.接收参数方式:
import sys
sys.argv
eg:测试报告发送给xxx的xxx邮箱
**
五、模块定位
1.模块的查找路径:系统规定死的路径
先后顺序:a->b->c->d
a.内置模块路径(python.exe中),任意地方都能使用
b.系统标准模块路径(python安装路径/Lib目录中),任意地方都能使用
c.主执行文件所在当前目录
d.第三方包的安装路径(pip install PyMySQL):python安装路径/Lib/site-packages,任意地方都能使用
2.模块的查找路径:自定义路径
任意指定一个路径作为包/模块的查找路径
实现方式:
import sys
sys.path # 系统路径,列表,可修改的
sys.path.append('新目录路径')
sys.path.insert(0,'新目录路径')
3.补充
pycharm自动将项目根目录添加到sys.path中
**
六、range
1.range()函数
用于生成指定范围的对象(可迭代对象)
使用方式:
obj = range(start,end,step)
start: 默认0
end: 设置(包前不包后)
step: 默认1
list(obj) # 转换成列表
for ... in ... # 直接遍历
2.实例
# 练习:求列表中所有1的索引
tmp = [1, 2, 3, 1, 1]
len = len(tmp)
print(len)
ilist = []
for i in range(len):
if tmp[i] == 1:
ilist.append(i)
print(ilist)
**
七、列表推导式
1.列表推导式
根据指定的表达式 快速生成列表
变量 = [表达式 for tmp in 容器 简单if语句] # 简单 if xxx else xxx
2.实例
# 快速获取1的列表
tmp = [1, 2, 3, 1, 1]
result = [i for i in range(len(tmp)) if tmp[i] == 1]
print(result)