其实这个面向过程编写程序,是编写程序的基础,所以一定要好好掌握 此程序涉及知识点:装饰器,生成器,协程器应用 # 编辑者:闫龙 import os Distinct = [] #定义一个列表用于判断重复的文件 def AutoNext(Target): #生成器的Next装饰器 def NextTarget(*args): res = Target(*args) #res得到Target(*args)的执行结果(Target()) next(res)#让res进行一次next到yield的操作…
一.yield的表达形式 def foo(): print('starting') while True: x=yield None#return 2 print('value :',x) g=foo() print(next(g)) print(g.send(2)) 运行结果: starting #运行函数,打印starting后碰到yield停住 None #next()触发后 yield将None赋值给x,打印None后循环碰到yield停住 value : 2 #g.send(2)将2赋…
函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 面向过程的编程思想:流水线式的编程思想,在设计程序时,需要把整个流程设计出来 优点: 程序的体系结构更清晰 简化程序的复杂度 缺点: 可扩展性及其差,所以i一般应用于不需要经常变化的软件,如:Linux内核,httpd,git等软件 实例: 实现类似Linux下的如下命令功能: cat -rl '…
1.面向过程编程 面向过程:一种编程思想在编写代码时 要时刻想着过程这个两个字过程指的是什么? 解决问题的步骤 流程,即第一步干什么 第二步干什么,其目的是将一个复杂的问题,拆分为若干的小的问题,按照步骤一一解决,也可以说 将一个复杂的问题,流程化(为其制定一个固定的实现流程),从而变得简单化例如:要将大象装进冰箱 打开冰箱 装进大象 关闭冰箱门 以上实现方式 是面向过程的实现方式 面向过程编程优缺点: 优点:复杂的问题,简单化, 缺点:由于其实现流程是固定的,一旦中间某一个步骤发生了修改,将导…
Python实现字符,单词,行,代码行,空行及可视化 Gitee项目地址:https://gitee.com/biubiubiuLYQ/word_and_character_statistics 一.解题思路 一开始拿到该题目,心想最近在学Shell编程,好像写个脚本,用wc命令都可以较轻松的把这些功能实现,但是这好像要得是具体去模拟wc命令,让自己更了解是如何实现的,一想,基本功能都挺好实现的,就是从没实现过带命令参数的程序,也不知道py文件打包成exe文件该如何实现,于是百度了一下,发现实现…
生成器表达式形式 直接上代码 # yield的表达式形式 def foo(): print('starting') while True: x=yield #默认返回为空,实际上为x=yield None print('value',x) g=foo() print(g.__next__()) #停到yield位置,生成器初始化,遇到yield返回一个None print('---分割线君---') print(g.send(1)) #传值给yield,然后yield传给x,最后触发一次next…
生成器表达式形式 直接上代码 1 # yield的表达式形式 2 def foo(): 3 print('starting') 4 while True: 5 x=yield #默认返回为空,实际上为x=yield None 6 print('value',x) 7 g=foo() 8 print(g.__next__()) #停到yield位置,生成器初始化,遇到yield返回一个None 9 print('---分割线君---') 10 print(g.send(1)) #传值给yield,…
迭代器 迭代器 迭代: # 更新换代(其实也是重复)的过程,每一次的迭代都必须基于上一次的结果(上一次与这一次之间必须是有关系的) 迭代器: # 迭代取值的工具 为什么用迭代器: # 迭代器提供了一种可以不依赖索引取值的方式 # 会一直打印0,记得停止 # n = 0 # while True: # print(n) # 重复 + 每次迭代都是基于上一次的结果而来的 l = [1, 2, 3, 4, 5] s = 'hello' n = 0 while n < len(s): print(s[n…
写在前面 上课第五天,打卡: 凭着爱,再回首: 一.协程函数(生成器:yield的表达式形式) 1.yield 的语句形式: yield 1 - 这种方式在 Python基础(函数部分)-day04 里面详细介绍过,这里不再赘述: 2.yield 的表达式形式: x=yield - 示例1:使用 next() 方法调用生成器执行,没有给yield传值: def deco(func): # 定义了一个装饰器 def wrapper(*args,**kwargs): res = func(*args…
一.装饰器 一.装饰器的知识储备 1.可变长参数  :*args和**kwargs def index(name,age): print(name,age) def wrapper(*args,**kwargs): #即args=(1,2,3,4,5),kwargs={'x':1,'y':3} index(*args,**kwargs) #index(1,2,3,4,5,y=2,x=5) 2.函数对象:被当做数据传递 1.函数可以当做参数传给另外一个函数 2.一个函数的返回值,也可以是一个函数(…