随笔分类 -  第三章 python函数

1 2 下一页

函数-函数进阶-迭代器
摘要:迭代器 我们已经知道,可以直接用作于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple 、dict 、set、str等; 一类是generator包括生成器和带yield的gunerator function。 这些可以直接作用 for循环的对象统称为可迭代人:Iterab 阅读全文

posted @ 2019-05-29 10:36 kingforn 阅读(173) 评论(0) 推荐(0)

函数-函数进阶-生成器send方法
摘要:一个函数有yield在里面就变成一个生成器 函数有了yield之后 1.函数名加()就变得到了生成器 2.return 在生成器里,代表 生成器的中止,直接报错 next 唤醒生成器并继续执行 send(‘stop’) 1.唤醒并继续执行 2.发送一个信息到生成器内部。 阅读全文

posted @ 2019-05-28 20:42 kingforn 阅读(490) 评论(0) 推荐(0)

函数-函数进阶-函数写生成器
摘要:生成器的创建方式: 1.列表生成式() 2.函数 yield vs return return 返回并中止function yield 返回 数据,并冻结当前的执行过程。。。 next 唤醒冻结的执行过程,继续执行,知道遇到下一个yield。 阅读全文

posted @ 2019-05-28 20:21 kingforn 阅读(189) 评论(0) 推荐(0)

函数-函数进阶-生成器调用方法
摘要:>>> a = (i for i in range(10))>>> while True:... print(next(a))...0123456789Traceback (most recent call last): File "<stdin>", line 2, in <module>Stop 阅读全文

posted @ 2019-05-28 15:21 kingforn 阅读(474) 评论(0) 推荐(0)

函数-函数进阶-斐波那契
摘要:我们讲过,generator保存的是算法,每次调用next(g) 就计算出g 的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出stopIteration 的错误 当然,上面这种不断调用 next(g) 实在是太变态了,正确的方法是使用for循环,因为generator也是可迭代对象: 阅读全文

posted @ 2019-05-28 14:54 kingforn 阅读(513) 评论(0) 推荐(0)

函数-函数进阶-列表生成式
摘要:>>> a = list(range(10))>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> a = [i+1 if i<10 else i*i for i in a]>>> a[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>> 阅读全文

posted @ 2019-05-24 20:01 kingforn 阅读(147) 评论(0) 推荐(0)

函数-函数进阶-装饰器带参数2
摘要:user_state = Falsedef login(auth_tpye): def out(func): def inner(*args,**kwargs): global user_state db = {'kingforn': 'abc123', 'alex': 'abc!@#'} if u 阅读全文

posted @ 2019-05-24 16:08 kingforn 阅读(218) 评论(0) 推荐(0)

函数-函数进阶-装饰带参数的函数
摘要:user_state = Falsedef login(func): def inner(*args,**kwargs): global user_state db = {'kingforn': 'abc123', 'alex': 'abc!@#'} if user_state == False: 阅读全文

posted @ 2019-05-24 14:29 kingforn 阅读(211) 评论(0) 推荐(0)

函数-函数进阶-装饰器流程分析
摘要:老王:算了,估计你也想不出来。。。学过嵌套函数没有? 你:yes,然后呢? 老王:想实现一开始你写的america = login(america)不触发你函数的执行,只需要在这个login里面再定义一层函数,第一次调用america = login(america) 用到外层login ,这个lo 阅读全文

posted @ 2019-05-24 10:56 kingforn 阅读(157) 评论(0) 推荐(0)

函数-函数进阶-装饰器
摘要:想象一下: 你是一家视频网站的后端开发工程师,你们网站有以下几个版本: def home(): print(" 首页 ") def america(): print(" 欧美专区 ") def japan(): print(" 日韩专区 ") def henan(): print(" 河南专区 ") 阅读全文

posted @ 2019-05-24 10:12 kingforn 阅读(138) 评论(0) 推荐(0)

函数-函数进阶-闭包
摘要:def func(): n = 10 def func2(): print('func2', n) return func2 f = func() print(f) f() 执行结果 func2: 10 这就是闭包 阅读全文

posted @ 2019-05-23 09:47 kingforn 阅读(88) 评论(0) 推荐(0)

函数-函数进阶-作用域的查找空间
摘要:n = 10 def func() n = 20 print('func:',n) def func2() n = 30 print('func2',n) def func3() print('func3',n) func3() func2() func() 执行结果: func:20 func2: 阅读全文

posted @ 2019-05-23 08:18 kingforn 阅读(122) 评论(0) 推荐(0)

函数-函数进阶-命名空间
摘要:命名空间又称名称空间 又名name space,顾名思义就是存放名字的地方,存声明名字呢?举例说明,若变量x=1,1存放在内存中,那名字x存放在哪里呢? 名称空间正是存放名字x与1绑定关系的地方 名称空间共3种,分别如下: locals:是函数内的名称空间,包括局部变量和形参 globals:全局变 阅读全文

posted @ 2019-05-22 15:37 kingforn 阅读(138) 评论(0) 推荐(0)

函数内置方法
摘要:python 的len为什么你可以直接用?肯定是解释器启动时就定义好了! abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii( 阅读全文

posted @ 2019-05-21 14:39 kingforn 阅读(134) 评论(0) 推荐(0)

递归的作用
摘要:求阶乘: 任何大于1的自然数n阶乘表示方法: n!= 1*2*3*4*......*n 或 n! = n*(n-1)! 即举例:4!= 4*3*2*1 =24 阅读全文

posted @ 2019-05-20 12:46 kingforn 阅读(488) 评论(0) 推荐(0)

递归的特性总结
摘要:def count(n): v = int(n/2) print(v) if v == 0: return 'Done' count(v) print(v) count(10) #执行结果: 5 2 1 0 1 2 5 总结递归的机柜特点: 1.必须有一个明确的结束条件,要不就会变成死循环了,最终撑 阅读全文

posted @ 2019-05-20 12:17 kingforn 阅读(1156) 评论(0) 推荐(0)

递归的作用?
摘要:例子10除以2得到的结果一直除以2直到零为止! 用递归来做: def count(n): v = int(n/2) print(v) if v == 0: return 'Done' count(v) 阅读全文

posted @ 2019-05-20 11:10 kingforn 阅读(495) 评论(0) 推荐(0)

递归与栈的关系
摘要:递归与栈的关系: 可是为何执行了900多次就出错了呢?还说超过了最大递归深度现在,为什么要限制呢? 通俗来讲,是因为每个函数在调自己的时候还没有退出,占内存,多了肯定会导致内存崩溃。 本质上讲呢,在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每 阅读全文

posted @ 2019-05-20 10:58 kingforn 阅读(3072) 评论(0) 推荐(0)

递归介绍
摘要:递归就是函数在执行过程调用自己。 def func(n): print(n) func(n+1) python 默认递归次数为1000次,这个默认值是可以修改的。 阅读全文

posted @ 2019-05-20 09:59 kingforn 阅读(133) 评论(0) 推荐(0)

函数-高阶函数
摘要:变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 只需满足以下任意一个条件,即是高阶函数: 接受一个或多个函数作为输入 return返回另一个函数 阅读全文

posted @ 2019-05-20 09:40 kingforn 阅读(146) 评论(0) 推荐(0)

1 2 下一页