三元表达式

#三元表达式
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, timedef init(func):  # 装饰器的作用是使下面的生成器初始化,yield等着被传值def wrapper(*args, **kwargs):res = func(*args, **kwargs)next(res)return resreturn wrapper@init
def search(target):'''找到文件的绝对路径'''while True:dir_name = yieldprint("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 = yieldprint("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 = yieldprint("cat开始工作:读取文件内容")time.sleep(0.3) # 加上等待时间是为了看着更有效果for line in f:target.send((file_path,line))@init
def grep(pattern, target):'''过滤一行内容中有需要的内容,就把路径传给下面'''while True:file_path,line = yieldprint("grep开始工作:过滤内容")if pattern in line:target.send(file_path)@init
def printer():'''打印文件路径'''while True:file_path = yieldprint("printer开始工作:打印文件的绝对路径")time.sleep(2)print(file_path)#调用阶段
g = search(opener(cat(grep('python',printer()))))
g.send('C:\\egon')

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

转载于:https://www.cnblogs.com/bingabcd/p/6700072.html

python基础之协程,列表生成式,生成器表达式相关推荐

  1. 列表生成式,生成器表达式,模块的使用

    三元表达式 无论条件成立与否都要返回一个值, 用于简化仅有一个判断的函数(或代码块)递归 递归有循环调用的次数限制,调用函数时,函数相关数据要入栈,而栈区是有限的 二分查找法匿名函数 仅能在定义时使用 ...

  2. Python并发之协程gevent基础(5)

    1,gevent介绍 gevent是第三方库,通过 greenlet 实现 coroutine,创建.调度的开销比 线程(thread) 还小,因此程序内部的 执行流 效率高. gevent 实现了 ...

  3. Python并发之协程gevent基础

    基本示例 from gevent import monkey monkey.patch_all() # 记住一定放在第一行,这里是打补丁的意思,time模块在使用协程gevent模块的时候,必须打补丁 ...

  4. python 协程可以嵌套协程吗_Python | 详解Python中的协程,为什么说它的底层是生成器?...

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

  5. python列表生成器语法_Python 列表生成式\生成器

    Python 列表生成式+生成器 一.列表生成式 1.什么是列表生成器 一种可以便捷地生成列表的表达式,有时候可以替换list.append(变量) 2.需求. 如何将列表中的每个数据都加1 列表:d ...

  6. Python与Golang协程异同

    背景知识 这里先给出一些常用的知识点简要说明,以便理解后面的文章内容. 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定 ...

  7. Python 中 异步协程 的 使用方法介绍

    静觅 崔庆才的个人博客:Python中异步协程的使用方法介绍:https://cuiqingcai.com/6160.html Python 异步 IO .协程.asyncio.async/await ...

  8. python 多线程和协程结合_Python 异步编程,看这门课就够了~

    我们常见的 Linux.Windows.Mac OS 操作系统,都是支持多进程的多核操作系统.所谓多进程,就是系统可以同时运行多个任务.例如我们的电脑上运行着 QQ.浏览器.音乐播放器.影音播放器等. ...

  9. Python 多线程 多进程 协程 yield

    python中多线程和多进程的最大区别是稳定性和效率问题 多进程互相之间不影响,一个崩溃了不影响其他进程,稳定性高 多线程因为都在同一进程里,一个线程崩溃了整个进程都完蛋 多进程对系统资源开销大,多线 ...

最新文章

  1. 深度学习:tensorflow层次结构,朴素NN代码实现tensorflow
  2. 【无线电波】蓝牙Bluetooth来源 原理?有无辐射影响健康 是否安全!?
  3. go返回多个值和python返回多个值对比
  4. 真格量化-持仓量第n档卖方主力跟随策略
  5. LeetCode MySQL 1322. 广告效果
  6. android 引用非 android 工程,Unity3D调用android方法(非插件方式)
  7. java applet怎么传参,使用不带浏览器的参数运行java applet
  8. Linux 找不到qt,linux – CMake找不到QtCore
  9. dispatch js实现_js实现对象自定义事件,触发,on监听事件的方式
  10. openwrt下ipk生成过程及原理
  11. 生活中的逻辑谬误02.稻草人谬误
  12. 北大公开课计算机,清华、北大、浙大的计算机课程资源集都在这里了
  13. 远程操作安卓手机——所见即所控
  14. (华为社招岗位,部门---公共开发部,数字能源,计算,Carbu, 上海海思,GTS,海思,2012):上海!上海上海!
  15. 满分的一份软件测试工程师简历,凭什么?
  16. 【C语言进阶】指针(进阶2)
  17. 虚拟机hmc连接服务器,VMware虚拟机安装HMC图文教程
  18. EBS中AP发票分配行的解释
  19. 微信小程序实现左边图片右边文字效果
  20. 百度广告产品系统级测试技术演进

热门文章

  1. UVA 610 Street Directions 双连通分量
  2. WPF编游戏系列 之四 用户控件
  3. 15:18 2009-7-5 小结
  4. Kali Linux安装谷歌浏览器
  5. 打开别人Xamarin项目找不到android.jar文件
  6. 列表根据下标取值_散列表(上):Word文档中的单词拼写检查功能是如何实现的?...
  7. php面向对象 设计模式,PHP面向对象单态设计模式详解
  8. python爬取淘宝商品做数据挖掘_Python 3爬虫 数据清洗与可视化实战 Python数据抓取技术 python3网络爬虫教程书籍 运用Python工具获取电商平台页面数据挖掘书籍...
  9. BCI里程碑!脑机接口首次让患者输出完整句子
  10. python判断文件夹是否存在