随笔分类 - 函数
摘要:""" 面向过程编程:就类似于设计一条流水线 好处: 将复杂的问题流程化 从而简单化 让人一目了然 可以明白什么是干什么的 坏处: 可扩展性较差 一旦需要修改 整体都会受到影响牵制一发 动则全身 因为你不直到哪里 用到了这个函数所以 要修改 是很麻烦的 稍有不注意那么整个代码就有问题 """ # 注册功能 # 1.获取用户输入 def g...
阅读全文
摘要:生成器表达式 生成器1.生成器会主动地执行任何一行代码 2.生成器必须通过__next__来触发代码的运行 列表生成式 例子: """ # res = [i for i in range(1,10) if i !=4 ] # print(res) # 结果:[1, 2, 3, 5, 6, 7, 8, 9]生成一个列表 # for循环i ...
阅读全文
摘要:"""关键字 yiels yield 支持外接为其传参 yield 1.可以帮你生成一个自定义的生成器 2.可以帮你吧在运行的函数,变成暂停状态 3.yield 也可以有返回值 与return之间的异同点 1.相同点: 都可以返回值 并且返回多个值 2.不同点: yield 可以返回多辞值 ...
阅读全文
摘要:""" 生成器: 首先要了解生成器的 关键单词 yield 然后就是生成器 就是用户自己定义的迭代器 所以本质上还是迭代器 例子: """ def func(): print("iter") yield 111 print("next") yield 222 print("iter") yield 333 print(...
阅读全文
摘要:"""for 循环内部的本质 1.将in 后面的对象调用了__iter__转换成了迭代对象 2.调用 __next__迭代取值 3 内部有异常捕获 stoppiteration,当__next__出现这种报错的时候循环自动结束可迭代对象:内置方法有__iter__的迭代器对象:即拥有__iter__
阅读全文
摘要:""" 迭代器取值 1.内置有__iter__方法 2.内置有__next__方法 注释:迭代器一定是可迭代对象 但是可迭代对象不一定是迭代器对象 迭代器的特点: 只能从头依次取值 不能说倒退 把刚才的值再取一次那是不行的 """ # l= [1,2,3,4,5] # #生成一个迭代器对象 # iter_1 =l.__iter__() # ""...
阅读全文
摘要:""" 迭代器 什么是迭代器 迭代 : 就是更新换代一个重复的过程 迭代的过程都必须基于上一次的结果 为什么要用迭代器: 迭代器 给你提供了一种不需要索引取值的方式 一 需要迭代取值的数据类型 字符串 int 列表 list 元组 tuple 字典 dict 集合 set 可迭代对象 只要内置方法里面有__iter__的都叫迭代对象 补充 : 针...
阅读全文
摘要:max 取列表中的最大值 min 和max 刚好是相反的 一个是取最大值 而min是取最小值 # 如1 l = [1,2,3,4]print(max(l)) #结果:4 """ max:内部基于for循环, 先一个一个的将传入容器类型中的元素一个一个的取出 当你没有制定key 那么 (key 中的第一个字母对应的是ascll表的对应数字从而做出判断) 如果指定了key,那...
阅读全文
摘要:3.装饰器的嵌套 1.装饰的时候 从下往上执行(******) @outter1 # index = outter1(func2)@outter2 # func2 = outter2(func1)@outter3 # func1 = outter3(index)def index(): pass
阅读全文
摘要:"""""""""匿名函数: 简答的说就是么有名字的函数 特点: 临时存在 用完就没有了 如: 我们现在要做一个 数字加的函数 def my_sum(x,y): return x+y my_sum(1,2) 比较麻烦 res = (lamdba x,y:x+y)(1,2)print(res)或者fu
阅读全文
摘要:p1 = ["name","password","hobby"]p2 = ["jason","222","djb"]d = {}for i ,j in enumerate(p1): d[j] = p2[i]print(d)结果:{'name': 'jason', 'password': '222',
阅读全文
摘要:列表生成式l = ["tanke_nb","jige_sb","yangxin_"]res = [name for name in l if name.endswith("_sb")]# 先通过for循环一次取出 列表里面的值然后 判断 那个后边有_sb 有就打印 没有的全部剔除print(res)结果:jige_sb# res = ["%s_dsb"%name for name in l] ...
阅读全文
摘要:""" 三元表达式 def my_max(x,y): if x>y: return x else: return y x = 10 y = 20 判断数字大小 看你传的数字的大小如上 返回的就是y 但是三元表达式 可以更简单的完成这个工作 上面的代码是四行 而三元表达式 一句代码就可以完成如下 x = 222 y = 333 ...
阅读全文
摘要:""" """ """ 算法之二分法: 1: 算法 解决问题的高效方法 f = [1,3,4,5,6,7,8,9] 我想取出这个最大的数字9怎么取出是不是可以通过for循环取出来 如:num = 9 for i in f: 注释: 通过for循环吧f的值一个一个的给i if num==i: 如果当i==9时 那么print 打印findit 表示找到了 ...
阅读全文
摘要:""" """ """ 一函数的递归 函数在调用阶段直接或间接的又调用了自身 如; def func(n): func里面的值n print("from func",n) 打印fromfunc 还有n func(n+1) def func(1) 在这里func调用了上面的func且n+1陷入了死循环 ...
阅读全文
摘要:读代码 回答代码中 打印的 值 是多少 a b c 分别是什么 为什么? 读代码 回答代码中 打印的 值 是多少 a b c 分别是什么 为什么?
阅读全文
摘要:流程图 运行结果是:111 在中间会遇到x=222但是在进入函数体内 它里面就有一个 所以 后期 就不会用 全局空间的x 而是局部空间的值
阅读全文
摘要:作用域 全局作用域 全局有效:内置名称空间 全局名称空间 局部作用域 局部有效 局部作用域 global:局部修改全局 如果想修改多个 逗号隔开nonlocal:局部修局部 如果想修改多个 逗号隔开 # global 在局部修改全局的不可变数据类型# x = [] # 因为列表是可变类型x = 1
阅读全文
摘要:第一 重要的知识点 名字的查找 1首先你要先确定你在现在处在那个空间 1,如果站在全局: 那你的查找顺序就是全局到》》》内置 2,站在局部:局部 》》》全局》》》内置 上 代码 结果:555 如果在上述中删除555 那么结果就是444 如果删除444那么结果就是333 这就和找朋友是一样的 你要一层
阅读全文