本章目录: 一.三元表达式.列表推导式.生成器表达式 二.递归调用和二分法 三.匿名函数 四.内置函数 ================================================================== 一.三元表达式.列表推导式.生成器表达式 1. 三元表达式 #三元表达式格式: ''' 判定条件? 为真时的结果 : 为假时的结果 ''' # 例 result = 5>3? 1 : 0 ''' 定义函数比较两个值 ''' def max(x, y): if x…
可迭代的:内部含有__iter__方法的数据类型叫可迭代的,也叫迭代对象实现了迭代协议的对象 运用dir()方法来测试一个数据类型是不是可迭代的的. 迭代器协议是指:对象需要提供next方法,它要么返回迭代中的下一项,如果要么就引起一个StopIteration异常(当对象没有下一项时),以终止迭代.我们知道for循环可以遍历列表,元组,字符串等等,还可以遍历文档,这是为什么么呢?迭代器协议是指:对象需要提供next方法,它要么返回迭代中的下一项,要么就引起一个StopIteration异常,以…
一.三元运算符 本质是if--else--的语法糖 前提:简化if--else--的结构,且两个分支有且只有一条语句 案例: a = 20 b = 30 res = a if a > b else b # 求最大值 print(res) res = a if a < b else b # 求最小值 print(res) 三元运算符的结果不一定要与条件有直接性关系 res = 'b为小值' if a > b else 'a为小值' print(res) name = input("…
1.匿名函数 list(filter(lamda a:a>3,[1,2,3,4,5])) 一般和过滤器一起使用 2.函数的作用域 a = 123 def test(): a = 666 a = a + 1 print(a) test() print(a) 1.函数外面访问不到函数里面的变量 2.函数里面可以访问外面的变量 3.函数里面不能修改外面的变量,针对不可变类型而言的,对于列表等可变类型可以修改. 4.函数里面和外面变量名相同,但不是同一个. 5.函数内部用 global a 申明a为全局…
lambda函数又叫做"匿名函数".当你完成一件小工作时,直接使用该函数可以让你的工作得心应手. lambda函数介绍 在Python中,定义函数使用的是def关键字,但是通过lambda关键字来定义的函数,称之为"匿名函数". 函数的语法如下: lambda 参数:表达式 函数用法如下: ①先写lambda关键字,②然后依次写匿名函数的参数,多个参数之间用逗号连接,③接着是一个冒号,④冒号后面写的是返回的表达式. 需要注意以下几点: lambda函数能接收任意多个…
迭代器 可迭代协议和迭代器协议 可迭代协议 只要含有__iter__方法的对象都是可迭代的 迭代器协议 内部含有__next__和__iter__方法的就是迭代器 关系 1.可以被for循环的都是可迭代的 2.可迭代的内部都有__iter__函数 3.只要是迭代器,一定可迭代 4.可迭代的对象使用__iter__方法就可以得到一个迭代器 5.迭代器中的__next__方法可以一个一个的获取值 例子 判断是否是可迭代类型 可以被for循环的类型都有__iter__()函数 dir()函数可以返回类…
一 递归和迭代 二 什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象. 三 python中强大的for循环机制 for循环的本质:…
Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程Functional Programming 每天都有程序员定时讲解Python技术,分享一些学习的方法和需要留意的小细节,要资料加 6244407451. python中的函数■ 函数的意义:■1.对输入进行变换映射后输出 ,可以进行反复调用.以函数名对代码块进行封装■2.过程化 VS 结构化■…
生成器 在函数中使用yield关键字就会将一个普通的函数变成一个生成器(generator),普通的函数只能使用return来退出函数,而不执行return之后的代码.而生成器可以使用调用一个next方法来返回生成器中上一次yield时候的状态.并且可以使用send方法给yield重新赋值.这样就可以灵活的进入和跳出函数.因此在程序中生成器可以中断当前函数,去执行其它的代码,在合适的时候跳回函数继续执行 def yield_test(): print('befor the first') fir…
生成器 1.什么是生成器? 生成的工具. 生成器是一个 "自定义" 的迭代器, 本质上是一个迭代器. 2.如何实现生成器 但凡在函数内部定义了的yield, 调用函数时,函数体代码不会执行, 会返回一个结果,该结果就是一个生成器. yield: 每一次yield都会往生成器对象中添加一个值. - yield只能在函数内部定义 - yield可以保存函数的暂停状态 yield与return: 相同点: 返回值的个数都是无限制的. 不同点: return只能返回一次值,yield可以返回多…