03 2018 档案
摘要:1.cmd里 cd..表示后退一步,cd 目录名表示进入下一层。 2.模块一旦被调用,就相当于执行了模块的代码。要想模块被调用时不立即执行,模块里不需要执行函数。 3.模块的导入路径(cd 目录名进入下一层,进入到当前模块所在目录cd一下,输入python,然后导入目录下的模块。模块名·要执行的函数
阅读全文
摘要:1.模块的好处 ① 提高了可维护性。各个函数分开,代码量相对减少,维护起来方便。我们写程序的时候也经常调用python内置模块和第三方模块。 ②使用模块还可以避免函数名和变量名冲突。每个模块都有独立的命名空间,因此相同名字的函数和变量名可以存在不同的模块中。 ③可多次调用 2.模块的分类 ①内置标准
阅读全文
摘要:list.append(object) 向列表中添加一个对象objectlist.extend(sequence) 把一个序列seq的内容添加到列表中。 hash函数 可hash的值必须是不可变的。字典、列表和集合可以变动,不可hash。元组,数值,字符串可以hash。 不可hash的。比如列表:同
阅读全文
摘要:1.生成器本质上也是一种迭代器,可用__next__唤醒并执行。唯一的区别在于实现方式上,迭代器更加简洁。 用__next__唤醒并执行获取,通过for循环来获取指定数量的值。 2生成器日志调用方法(未完成) 3.内置函数 1. 2. 3.
阅读全文
摘要:open(f_name,'r',encoding="utf-8") 二·函数基础 1. from functools import reduce def Sum(x,y): return x+y print(reduce(Sum,[1,2,3,4,5,6])) # from functools im
阅读全文
摘要:Iterable:可迭代的 列表,字典,元组,字符串,集合这些可以循环的都是可迭代的。 还有一类是生成器(generator),生成器都是可迭代的。 下面的列子都是可迭代的。 迭代器:Iterator 可以被next函数调用并不断返回下一个值的对象称为迭代器。我们目前学的迭代器只有生成器。 生成器都
阅读全文
摘要:send 和next区别 next:唤醒并继续执行 send:唤醒并继续执行 发送信息到生成器内部。
阅读全文
摘要:生成器的创建方式 1.列表生成式。(比较简单的生成器创建,如 a = (i for i in range(10)) 2.函数生成式。 return 与 yield比较 return: 返回并结束函数。 yield:返回并暂时冻结函数,等值返回以后在继续执行(需要用next唤醒,唤醒后继续执行,指导下
阅读全文
摘要:def fib(max): n,a,b = 0,0,1 while n < max: print(b) #直接输出数列的值 a,b = b,a+b #b赋值给a后,a = 1,a+b 赋值给b b还是一,因为赋值后的a并没有立即参与运算。 n += 1 print(fib(15))...
阅读全文
摘要:列表生成器(简便:不需要多行代码) generator 生成器 特点:1.想要生成器里的元素不会立即产生,需要取一次才能创建一次。2.只能往前走,不能往后退。3.生成器生产完毕,继续下去会报错。 生成器循环 python3里的range 实质上是一个生成器 python2里的range
阅读全文
摘要:不用装饰器调用函数。 用有带参数的装饰器(装饰器带参数需要用嵌套函数不断返回内层函数的地址。不带函数的装饰器直接调用下面的函数名作为参数)
阅读全文
摘要:非固定参数接收传入的实参,不论是多少都会接收。(*args,**kwargs)
阅读全文
摘要:直接改变模块里面函数的功能,将login() 引入到已经实现代码功能的模块里,不符合开放封闭原则。 已经实现功能的代码块,只能被扩展,不能被修改。下面的代码实现了扩展,也实现了功能。但是还是存在着问题。 下面的代码改变了调用方式,用login调用henan等,如果存在多个模块,且别人用其他方式调用了
阅读全文
摘要:匿名函数 (lambda) 匿名函数有个限制,只能有一个表达式,不用写return,返回值就是表达式的结果。 匿名函数也是一个函数对象,可以赋值给变量,通过变量调用。也可以作为返回值。
阅读全文
摘要:高阶函数不但能够接收函数作为参数,也能够将函数作为结果值返回。 调用lazy_sum函数,每次调用都会返回一个新的函数,调用的结果互不影响。 返回的函数引用的变量i并不会立即执行,等到三个函数都返回时,i已经变成了3。 返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。 上
阅读全文
摘要:filter函数 接受一个函数和序列,把传入的函数依次作用于每个序列,然后根据返回值时True还是False保留或舍弃元素。 删除列表中的空字符串 sorted也是一个高阶函数,它能够接受key函数来进行排序。key指定的函数作用于列表里的每个元素上。默认从小到大排序,可用reverse = Tru
阅读全文
摘要:iterator:迭代器 python的iterator是一个惰性序列(即你不主动去遍历它,他不会去计算其中元素的值) m是一个iterator,所以通过tuple()函数让整个序列计算出来,并返回一个元组。 map函数作为一个高阶函数,可以更快,更方便的对一些函数进行处理。 map函数接受的函数作
阅读全文
摘要:高阶函数 函数名就是一个指向函数的变量,上面的abs可以看成一个指向可计算绝对值函数的变量。 abs作为变量,可以赋值,赋值以后的abs不再指向求绝对值的函数,一般不这样做。 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 最简单的高
阅读全文
摘要:软件开发中的一个原则:开放-封闭原则。 封闭:已实现的功能代码块不应该被修改 开放:对现有功能的拓展开放。 函数也是一个对象,函数对象可以赋值给一个变量,所以,通过变量也可以调用函数。 函数对象有一个__name__属性,可以得到函数的名字。 在代码运行期间动态增加功能的方式,称之为“装饰器”(De
阅读全文
摘要:名称空间:名称空间存储的是变量名和变量名与对应的值之间的关系。关系以字典形式存储(比如x = 2,data = {x:273893},273893是2的地址) 名称空间分三种,如下: locals:函数内的命名空间,包括形参和局部变量。打印当前locals所在位置的变量,如果在函数外面就打印全局,如
阅读全文
摘要:bytearray()返回一个新字节数组。 filter()快速过滤 lambda函数返回True的结果保留,返回False的结果去掉。 reduce() 默认换行,加入sep 可在空行之间插入。 tuple() callable()可以判断变量是否是函数,函数可以调用,返回True。 format
阅读全文
摘要:abs() 取绝对值 dict() 数据转为字典 help() 帮助 min() 取最小值 max() 取最大值 setattr()未讲 all() 判断列表是否为True,有一个是False就是False。all([])返回True bool()判断True 还是False any() 列表中任意
阅读全文
摘要:递归用途:不知道循环什么时候结束。同样的逻辑,当你需要在原来基础上重新执行这个逻辑,可用递归,可用循环。 递归的逻辑执行程序(可以用断点法来确认) 递归的返回值(输出最后一层的值。(判断语句下面return )) 递归的特性 必须要有明确的结束条件 每次进入更深一层递归,问题规模比上一层递归都应有所
阅读全文
摘要:python中函数就是一个作用域(和js类似),局部变量放置在其作用域中。 局部变量中的变量归属其实是按照作用域来划分的。 定义完成后,作用域已经确定,以后调用时根据嵌套关系一层一层调用,作用域链向上查找。 #匿名函数 lambda 函数 没有函数名,需要设定一个函数名。 匿名函数的三元运算 fun
阅读全文
摘要:函数在创建之后,没有调用的话函数会一直不动。 在外部调用func2也不行,因为程序都是从上到下执行的。 子级的函数寻找变量会优先寻找父级的,然后再去找全局变量。 func1() 调用后输出为19 下面两种均会报错 中间被修改为age = 28 ,不会输出19.
阅读全文
摘要:返回值:在函数运行得出结果后返回给外部调用该函数的程序。用return表示。 函数遇到return表示函数会停止执行并返回结果,return代表着函数的结束。 如果未在函数中指定return,则返回None。 函数只能返回一个值,如果需要返回多个值,中间加逗号,会形成元组,或者直接加【】, () 返
阅读全文
摘要:形式参数(形参) 形参只在函数内部有效,函数调用结束返回主调用函数后不能再使用该形参。 实际参数(实参) 实参可以是常量,变量,表达式,函数等,但都必须有确定的值,应该预先赋值,再带入实参。 默认参数 如果函数定义中有默认参数,实参中没有该默认参数,调用形参时会带入默认参数。(下面函数c 的Coun
阅读全文
摘要:1.三元运算又称为三目运算,是对简单的条件判断语句的简写。 如 a = 1 if 条件判断 else a = 2(错误,不用写 a = 2,直接写2) 2.循环文件 with open() as f: for line in f : print(line) 文件之间有空行(每行语句后面有个\n 换行
阅读全文
摘要:一丶列表 list.index(a) 查询列表里元素所在的位置(如果有重复是从左到右第一个元素所在的位置) list.count(a) 统计指定元素的个数 list[1:6:2] 步长为2,索引为1开始,打印第2,4,6个元素 list[::2] 返回所有的值,步长为2 list.append()
阅读全文
浙公网安备 33010602011771号