随笔分类 - 函数
摘要:算法 是高效解决问题的办法 用于某种特定的场景 算法之 二分法 需求:有一个按照从小到大顺序排列的数字列表,需要从该数字列表中找到我们想要的那个数字,如何做更高效??? 方案1:整体遍历,效率太低 nums = [-3,4,7,10,13,21,43,77,89] find_num = 10 for
阅读全文
摘要:递归的定义 函数的递归调用:是函数嵌套调用的一种特殊形式 具体是指:在调用一个函数的过程当中,又直接或者间接地调用到了本身 Python对递归调用循环调用的次数有限制,为1000次 1.调用的例子: 直接调用本身 def f1(): print('是我') f1() f1() 间接调用本身 def
阅读全文
摘要:什么是生成器 生成器就是自定义的迭代器 如何得到自定义的迭代器 在函数内一旦存在yield关键字,调用函数并不会执行函数体代码 会返回一个生成器对象,生成器即自定义的迭代器 def func(): print('第一次') yield 1 print('第二次') yield 2 print('第三
阅读全文
摘要:普通的表达式 def func(x,y): if x > y: return x else: return y res = func(1,2) print(res) 三元表达式 语法格式:条件成立时返回的值 if 条件 else 条件不成立时要返回的值 x = 1 y = 2 res = x if
阅读全文
摘要:什么是迭代器 迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,单纯的重复并不是迭代 为何要有迭代器 迭代器是用来迭代取值的工具,而涉及到把多个值循环取出来的类型 有:列表、字符串、元组、字典、集合、打开文件 l=['egon','liu','alex'] i=
阅读全文
摘要:储备知识 1.*args, **kwargs def index(x,y): print(x,y) def wrapper(*args,**kwargs): index(*args,**kwargs) # # index(y=222,x=111) wrapper(y=222,x=111) 2.名称空
阅读全文
摘要:匿名函数 1.def用于定义有名函数 # func = 函数的内存地址 def func(x,y): return x,y print(func) 2.lambda用于定义匿名函数 print(lambda x,y:x+y) 3.调用匿名函数 lambda x,y:x+y只是一个内存地址,要加()才
阅读全文
摘要:大前提 闭包函数 = 名称空间与作用域 + 函数嵌套 + 函数对象 核心点:名字的查找关系是以函数定义阶段为准 什么是闭包函数 "闭"函数指的该函数是内嵌函数 "包"函数指的该函数包含对外层函数作用域名字的引用(不是对全局作用域) 闭包函数 名称空间与作用域的应用+函数嵌套 def f1(): x
阅读全文
摘要:函数对象 精髓:可以把函数当成变量去用 1.可以赋值 # func=内存地址 def func(): print('from func') f=func # 函数func赋值给变量f print(f,func) # 打印f和func的内存地址,完全相同 f() # 相当于调用了函数func() 输出
阅读全文
摘要:名称空间namespace 存放名字的地方,是对栈区的划分 有了名称空间之后,就可以在栈区中存放相同的名字,详细的,名称空间分为3种 1.内置名称空间 存放的名字:存放的Python解释器内置的名字 存活周期:Python解释器启动 则产生,Python解释器关闭 则销毁 ''' >>> print
阅读全文
摘要:什么是函数 函数就相当于具备某一功能的工具 函数的使用必须遵循一个原则: 先定义,后调用。 为什么要用函数 组织结构不清晰,可读性差 代码冗余 可维护性、扩展性差 如何用函数 先定义 定义的语法 def 函数名(参数1,参数2,...): """文档描述""" 函数体 return 值 形式1:无参
阅读全文

浙公网安备 33010602011771号