列表生成式,生成器表达式,模块的使用和常用一些内置函数

     

列表生成式
一个快速产生列表的表达式

 

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)

 

# 使用from 导入时 会把import后的名字直接放入当前名称空间
# 使用时可以不用写前缀
# 注意:可能会与当前名称空间中的名字冲突
# 如果真的冲突了 会就近查找 谁最后定义我就用谁

 

# 取别名
 from tools import func as f
 print(f)

 

# 一次导入多个
 from tools import func,func1
 print(func,func1)
 from tools import func as f1,func1 as f2

 

# 一次导入全部
# *通配符 会将模块中华所有名字全部导入
# 极容易出现名称冲突,慎用
from tools import *
print(func)
print(func1)

 

 

一些内置han'函数:

abs() :绝对值
all() 如果所有元素都为True 结果为True
any() 任意一个元素为True 结果就为True
ascii() 将参数转为asc,如果asc不支持这个字符就转为unicode
bin() 转为二进制
oct()转为八进制
hex()转为十六进制
bool()转为布尔类型
bytearray()字节数组
bytes()转为bytes
callable()是否可调用
chr()数字转asc字符
ord()将asc字符转成数字
classmethod
compile()把一个对象转为指定的(字节码)code
complex()转为复数形式
dict()转为字典
dir()查看该对象中所有可用的名字(函数和变量)
divmod()得到商和余数
enumerate()枚举,把一个值与数字进行对应
eval()执行一个字符串类型的表达式   可用于帮你把一个字符串的内容转为python数据类型 但是这并不是它的本职工作
forzenset()冻结一个集合 列表也会被转为集合冻结
globals() 查看全局名称空间中的所有名字
locals()查看局部名称空间中的所有名字,在全局位置调用该函数看到的也是全局空间中的所有名字
hash()可以校验一个数据是不是可变
可hash都是不变的
不可hash都是可变的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值