三元表达式:
'yes' if name='time' else 'no'
列表解析:
创建一个列表:
l=['egg%s' %i for i in range(10)]
print(l)
带条件创建列表
l=['egg%s' %i for i in range(10) if i>=5]
print(l)
当中括号[]变成小括号()时,列表就变成了生成器
g=('egg%s' %i for i in range(10))
yield的第一种用法:
yield类似于return,当函数中出现yield时,函数会停住,并将yield后面的值返回
第二种用法:
def eater(name):
print('%s 说:我开动了' %name)
while True:
food=yield
print('%s eat %s' %(name,food))
name_g=eater('xiaogou')
#第一阶段:初始化
next(name_g)#等同于name_g.send(None)
#第二阶段:给yield传值
name_g.send('caitang')
python中的递归:
1.必须有一个明确的结束条件(也就是说不能无限循环)
2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
import sys
print(sys.modules)
sys.modules里面存放的是已经加载到内存的模块