三元表达式

#三元表达式
name = 'alex'
name = 'egon'
res='SB' if name == 'alex'else 'shuai'
print(res)
#输出:shuai

for循环

egg_list=[] #空列表

for i in range(100):   #for循环
egg_list.append('egg%s' %i)  #追加到egg_list空列表中
print(egg_list)
#输出:['egg0', 'egg1', 'egg2', 'egg3',....'egg99']

列表生成式输出

l=['egg%s' %i for i in range(100) if i > 50]
print(l)
输出:['egg51', 'egg52', 'egg53', 'egg54', 'egg55',...'egg99']
l=[1,2,3,4]  #定义一个列表
s='hello'  #定义一个字符串
l1=[(num,s1) for num in l if num > 2 for s1 in s] #当列表里的数字大于2时,把列表里的所有数字与字符串里的所有字母组成元组,生成由元组组成的列表
print(l1)
[(3, 'h'), (3, 'e'), (3, 'l'), (3, 'l'), (3, 'o'), (4, 'h'), (4, 'e'), (4, 'l'), (4, 'l'), (4, 'o')]
------------------------------分割线------------------------------
l=[1,2,3,4]
s='hello'
l1=[]
for num in l:
for s1 in s:
t=(num,s1)
l1.append(t)
print(l1)  #输出:

[(1, 'h'), (1, 'e'), (1, 'l'), (1, 'l'), (1, 'o'), (2, 'h'), (2, 'e'), (2, 'l'), (2, 'l'), (2, 'o'), (3, 'h'), (3, 'e'), (3, 'l'), (3, 'l'), (3, 'o'), (4, 'h'), (4, 'e'), (4, 'l'), (4, 'l'), (4, 'o')]

import os
g=os.walk('C:\\egon')
file_path_list=[]
for i in g:
print(i)
for j in i[-1]:
file_path_list.append("%s\\%s" %(i[0],j))
print(file_path_list) g=os.walk('C:\\egon')
l1=['%s\\%s' %(i[0],j) for i in g for j in i[-1]]
print(l1)

grep -rl(windows环境)

要求:在文件里递归找到关于包含“Python”内容的文件的绝对路径并打印出来

# 定义阶段
import os, time def init(func): # 装饰器的作用是使下面的生成器初始化,yield等着被传值
def wrapper(*args, **kwargs):
res = func(*args, **kwargs)
next(res)
return res
return wrapper @init
def search(target):
'''找到文件的绝对路径'''
while True:
dir_name = yield
print("search开始工作:文件的绝对路径")
time.sleep(2) # 加上等待时间是为了看着更有效果
g = os.walk(dir_name)
for i in g:
for j in i[-1]:
file_path = "%s\\%s" % (i[0], j)
target.send(file_path) # @init
def opener(target):
'''打开文件,读取文件句柄'''
while True:
file_path = yield
print("cat开始工作:读取文件内容")
time.sleep(2) # 加上等待时间是为了看着更有效果
with open(file_path,encoding="utf-8") as f:
target.send((file_path,f)) @init
def cat(target):
'''读取文件内容'''
while True:
file_path,f = yield
print("cat开始工作:读取文件内容")
time.sleep(0.3) # 加上等待时间是为了看着更有效果
for line in f:
target.send((file_path,line)) @init
def grep(pattern, target):
'''过滤一行内容中有需要的内容,就把路径传给下面'''
while True:
file_path,line = yield
print("grep开始工作:过滤内容")
if pattern in line:
target.send(file_path) @init
def printer():
'''打印文件路径'''
while True:
file_path = yield
print("printer开始工作:打印文件的绝对路径")
time.sleep(2)
print(file_path) #调用阶段
g = search(opener(cat(grep('python',printer()))))
g.send('C:\\egon')

打印C盘egon文件夹包含python的内容

python基础之协程,列表生成式,生成器表达式的更多相关文章

  1. python协程函数应用 列表生成式 生成器表达式

    协程函数应用 列表生成式 生成器表达式   一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._n ...

  2. Python基础之协程

    阅读目录 一 引子 二 协程介绍 三 Greenlet模块 四 Gevent模块 引子 之前我们学习了线程.进程的概念,了解了在操作系统中 进程是资源分配的最小单位,线程是CPU调度的最小单位. 按道 ...

  3. python基础(35):协程

    1. 前言 之前我们学习了线程.进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位.按道理来说我们已经算是把cpu的利用率提高很多了.但是我们知道无论是创建多进程还是创 ...

  4. Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式

    一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了 ...

  5. python基础之协程函数、列表表达式、生成器表达式

    一.协程函数 协程函数的定义?如果在一个函数内部yield的使用方式是表达式形式的话,如x=yield,那么该函数称为协程函数 协程函数补充: def init(func): def wrapper( ...

  6. 列表生成式&生成器表达式

    一.列表生成式 def func(): return [lambda x:i*x for i in range(4)] print([j(2) for j in func()]) 结果:[6,6,6, ...

  7. Python | 详解Python中的协程,为什么说它的底层是生成器?

    今天是Python专题的第26篇文章,我们来聊聊Python当中的协程. 我们曾经在golang关于goroutine的文章当中简单介绍过协程的概念,我们再来简单review一下.协程又称为是微线程, ...

  8. Python中的协程,为什么说它的底层是生成器?

    我们曾经在golang关于goroutine的文章当中简单介绍过 协程 的概念,我们再来简单review一下.协程又称为是微线程,英文名是Coroutine.它和线程一样可以调度,但是不同的是线程的启 ...

  9. [转载]Python 3.5 协程究竟是个啥

    http://blog.rainy.im/2016/03/10/how-the-heck-does-async-await-work-in-python-3-5/ [译] Python 3.5 协程究 ...

随机推荐

  1. Java中对Clone的理解

    面试中经常遇到Clone的相关知识,今天总算是把Clone理解的比较透彻了!Java中Clone的概念大家应该都很熟悉了,它可以让我们很方便的“制造”出一个对象的副本来,下面来具体看看java中的Cl ...

  2. 微信小程序组件icon

    基础内容icon:官方文档 Demo Code Page({ data: { iconSize: [20, 30, 40, 50, 60, 70], iconColor: [ 'red', 'oran ...

  3. mybatis参数处理 $#

  4. java @Retention元注解

    @Retention元注解 有三种取值:RetentionPolicy.SOURCE.RetentionPolicy.CLASS.RetentionPolicy.RUNTIME分别对应:Java源文件 ...

  5. hadoop12---java并发编程的一些总结

    java并发编程的一些总结 %.1.不应用线程池的缺点 有些开发者图省事,遇到需要多线程处理的地方,直接new Thread(...).start(),对于一般场景是没问题的,但如果是在并发请求很高 ...

  6. Python3.x:获取登录界面校验码图片

    Python3.x:获取登录界面校验码图片 实例代码: # python3 # author lizm # datetime 2018-06-01 18:00:00 # -*- coding: utf ...

  7. 用adb 启动camera

    adb shell am start -a android.media.action.STILL_IMAGE_CAMERA  启动camera adb shell input keyevent 27 ...

  8. Linux7关闭防火墙

    RedHat Enterprise Linux 7关闭防火墙方法 在之前的版本中关闭防火墙等服务的命令是 service iptables stop /etc/init.d/iptables stop ...

  9. JavaEE之反射

    反射定义简单表述: 对于任意一个(动态的)运行中的类,我们都可以解剖它,获取类中的构造方法,成员变量,成员方法. 类的加载 (1)加载 就是指将class文件读入内存,并为之创建一个Class对象. ...

  10. UVA 10214 Trees in a Wood(欧拉函数)

    题意:给你a.b(a<=2000,b<=2000000),问你从原点可以看到范围在(-a<=x<=a,-b<=y<=b)内整数点的个数 题解:首先只需要计算第一象限 ...