十八、python沉淀之路--生成器】的更多相关文章

一.生成器 生成器总结:语法上和函数类似:生成器函数和常规函数几乎是一样的.他们都是使用def语句进行定义,差别在于生成器使用yield语句返回一个值,而常规函数使用return语句返回一个值.自动实现迭代器协议:对于生成器,python会自动实现迭代器协议,以便应用到迭代背景种,(如for循环,sum函数).由于生成器自动实现了迭代器协议,所以,我们可以调用它的next方法,并且,在没有值可以返回的时候,生成器自动产生stop iteration异常. 状态挂起:生成器使用yield语句返回一…
一.高阶函数:分两种:一种是返回值中包含函数体:另一种是把一个函数体当作了参数传给了另一个函数 1.返回值中包含函数体 例1. def test(): print('这是一个测试') return test f = test() f() 这是一个测试 这是一个测试 例2 def inward(): print('from inward') def outward(): print('from outward') return inward f = outward() f() from outwa…
十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, OrderedDict time模块: 三种时间表示方法的转换 案例: 计算时间差 random模块: ① random.random() ② random.randint(1,5) ③ random.choice([1,'23',[4,5]]) ④ random.sample([1,'23',[4…
一.迭代器 1.什么是迭代器协议:对象必须提供一个next方法,执行该方法要返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前走). 2.可迭代对象:实现了迭代协议的对象,(如何实现:对象内部定义了一个__iter__()方法). 3.协议是一种约定,可迭代对象实现迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象. 4.python种强大的for循环机制: for循环的本质:循环所有对象,全部是…
一.eval函数 python eval() 函数的功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法:eval(source[, globals[, locals]]) -> value 参数: source:一个Python表达式或函数compile()返回的代码对象 globals:可选.必须是dictionary locals:可选.任意map对象 如果提供了globals参数,那么它必须是dictionary类型:如果提供了locals参数,那么它可以是任意的map对象.…
一.实现装饰器的预备知识 装饰器 = 高阶函数 + 函数嵌套 + 闭包 1.高价函数定义: 1.函数接收的参数是一个函数名    2.函数的返回值是一个函数名    3.满足上述条件任意一个,都可称之为高阶函数 例1:铺垫 import time #例1 def fn(): print('这是被调用函数') time.sleep(2) def test(func): print('高阶函数将要开始运行') start_time = time.time() func() end_time = ti…
一.文件操作b模式 1. # f = open('test11.py','rb',encoding='utf-8') # 这种情况会报错 f = open('test11.py','rb') # b 模式不能指定编码方式 data = f.read() print('直接打印出来:',data) print('解码打印\n',data.decode('utf-8')) f.close() 直接打印出来: b'11111\r\n22222\r\n3333\r\n' 解码打印 11111 22222…
1.abs函数,求绝对值. a = abs(-3) print(a) 返回:3 2.all函数:判断是否是可迭代对象. 官方解释:Return True if bool(x) is True for all values x in the iterable.  If the iterable is empty, return True. '])) #print(all('2','4','9')) #会报错,因为里面不是可迭代对象 print(all('')) #空字符串也是可迭代对象 print…
一. 1.字符串转集合 s = 'hello' se = set(s) print(se) {'e', 'o', 'h', 'l'} 2.列表转集合 l1 = ['hello','python','nice'] se1 = set(l1) print(se1) {'nice', 'python', 'hello'} 3.add:添加元素 s = {1,2,3,4,5,6,} s.add(9) print(s) {1, 2, 3, 4, 5, 6, 9} 4.clear:清空 s1 = {1,2,…
Python之Web框架: 本质:Socket 引用wsgiref创建web框架 根据web框架创建过程优化所得: 分目录管理 模板单独目录 执行不同函数单独存入一个方法py文件 Web框架的两种形式和命名 MVC Model数据操作 View模板文件 Controller业务处理 MTV Model数据操作 Template模板文件 View业务处理 Django为MTV模式的WEB框架 Django安装:pip3 install django 添加环境变量 C:\Users\Administ…