列表生成式
一个快速产生列表的表达式
li = [1,23,4,5,6]
new_list = []
for i in li:
temp = i + 100
new_list.append(temp)
print(new_list)
# 语法 [表达式 for in 遍历 if 条件]
# 会从li依次取出所有值,进行判断 如果满足条件 就装到新列表中
new_list = [i+100 for i in li] #
print(li)
print(new_list)
# 只提取大于20是的数据到新列表
new_list2 = [i/2 for i in li if i > 20]
print(new_list2)
生成数据的函数
函数体中yield关键字
yield 暂停函数的执行 还能返回一个值
生成器表达式
一种快速创建生成器的表达式
语法:
(表达式 for in 循环 if 条件)
与列表生产式完全相同
li = [1,2,3,4,5,6]
new_li = [i for i in li]
print(new_li)
res = (i+100 for i in li if i > 3)
print(list(res))
什么是模块
模块就是一堆功能的集合体,以py文件的形式存在
简单的就是具备一堆函数的py文件.
模块的分类
1.自定义模块(重点学习),包含第三方模块(学习用法即可)
2.内置模块 例如time,os(主要学怎么使用)
3.经过编译后的C或C++库,以DLL形式存在(忽略吧)
4.包(本质就是一个文件夹 其中包含了一堆模块)
使用模块时必须先找到对应的模块文件,这就涉及到查找(搜索)路径
1.查找内存中已存在的
2.内置的
3.sys.path
import sys
#sys.modules 可以看到内存已经加载的模块
print(sys.path)
# 当你要使用的模块不在执行文件同一级下时,就找不到
# 坑爹的是,pycharm会自动把项目根目录加入syspath
# 如果碰巧你要找的文件就在项目根目录下,就能找到
# 但是如果你换了运行环境不在是pycharm,就有可能找不到
# 所以为了保证你的项目在哪儿都能运行,
# 我们需要自己将要使用文件路径添加到sys.path中
# 可以sys.path理解为解释器的环境变量
# 如果你的执行文件在根目录下,就能访问到当前项目中所有文件 ,无须关心sys.path
import tools
print(tools.func)
# 给被导入的模块取别名
import tools as t
print(t.func)
# 一次导入多个模块
import tools,time
# import time
print(tools,time)