基础加强
__all__作用
python中导入模块方法
import 模块名 : 使用模块中的函数,类,变量,模块名.对应名称 |
from 模块名 import 对应名称 : 直接使用对应名称来使用 函数 、类 、变量 |
from 模块名 import * 直接使用函数、类、变量。* 表示导入全部内容 |
当使用from 模块名 import * 时,可以在模块名对应的py文件中,加入__all__=['类名','函数名','变量名']来确定要导入的内容。
包、__init__.py作用
包中有很多py文件,方便管理。包的实质就是一个文件夹。
python3中使用包的方法:
1. 在目录下新建一个__init__.py。
2. 在__init__.py中写入 __all__=['模块名']。决定了from 包名 import * 导入的模块名
3. from . import 模块名。 确定使用import包名 导入的模块。
python2中使用包的方法:
1. 在目录下新建一个__init__.py。
2. 在__init__.py中写入 __all__=['模块名']。决定了from 包名 import * 导入的模块名
3. import 模块名。 确定使用import包名 导入的模块。
注意 在__init__.py中写入的语句 会在导入包之后自动执行。
模块制作、发布
1. 新建setup.py
setup.py
包名
模块名
from distutils.core import setup
setup(name='Liuxiaoyang',version='1.0',description='Liuxiaoyang',author='Liuxiaoyang',py_module=['包名.模块名','包名.模块名'])
2. 构建包
python3 setup.py build
python3 setup.py sdist
生成 Liuxiaoyang-1.0.tar.gz
发布到 gitbub.com
下载 Liuxiaoyang-1.0.tar.gz
解压 tar -zxvf Liuxiaoyang-1.0.tar.gz
安装 python3 setup.py install
程序传参
import sys
sys.argv[0] 文件名
sys.argv[1] 第一个参数
sys.argv是一个列表
列表生成式
python2 中 range()风险 --> MemoryError
python3 中规避了风险。生成器
如果需要生成一个1~100的列表
传统方法:
li=[]
for i in range(1,101,1):
li.append(i)
print(li)
优化方法:
li=[i for i in range(1,101,1)]
for 只起到了循环次数的作用。
例如 li=[11 for i in range(10)]
li --> [11,11,11,11,11,11,11,11,11,11]
列表生成式中的条件筛选
li = [i for i in range(100) if i%2==0]
li=[(x,y) for x in range(190) for y in range(10) if x%2==1 if y%2==0]
集合、列表、元祖
集合set 用来去重 {}
列表list 用来增删改查 []
元祖tuple 不能改变 只能用index count两种方法 ()
集合、列表、元祖可以相互转换
元素去重
方法一:
a=[1,2,3,1,2]
b=[]
for i in a:
if i not in b:
b.append(i)
方法二:
a=[1,2,3,4,1,2,3,4]
b=set(a)
c=list(b)