本节内容 1.列表生成式 2.生成器 3.迭代器 一.列表生成式 需求:把列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]里,每个元素都加1 # 复制版,重新绑定 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] b = [] for i in a: b.append(i + 1) a = b # enumerate版,原值修改 a = list(range(10)) print("a >:", a) for index, value in e…
python高级之生成器&迭代器 本机内容 概念梳理 容器 可迭代对象 迭代器 for循环内部实现 生成器 1.概念梳理 容器(container):多个元素组织在一起的数据结构 可迭代对象(iterable):对象中含有__iter__()方法 迭代器(iterator):对象含有__next__()方法,并且迭代器也有__iter__()方法 生成器(generator):生成器其实是一种特殊的迭代器,不过这种迭代器更加优雅 列表/集合/字典推导式(list,set,dict compreh…
python高级之生成器&迭代器   python高级之生成器&迭代器 本机内容 概念梳理 容器 可迭代对象 迭代器 for循环内部实现 生成器 1.概念梳理 容器(container):多个元素组织在一起的数据结构 可迭代对象(iterable):对象中含有__iter__()方法 迭代器(iterator):对象含有__next__()方法,并且迭代器也有__iter__()方法 生成器(generator):生成器其实是一种特殊的迭代器,不过这种迭代器更加优雅 列表/集合/字典推导式…
python自动化开发学习 进程, 线程, 协程   前言 在过去单核CPU也可以执行多任务,操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换任务2,任务2执行0.01秒,在切换到任务3,这样反复执行下去,表面上看每个任务都是交替执行的,但是由于CPU速度太快,让我们觉得所有任务是在同时执行一样.真正的并行执行多任务只能在多核CPU上,但是由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把多任务轮流调度到每个核心上运行. 多任务的实现有三种方式: 多进程模式 多线程模式 多…
python自动化开发学习 I/O多路复用   一. 简介 socketserver在内部是由I/O多路复用,多线程和多进程,实现了并发通信.IO多路复用的系统消耗很小. IO多路复用底层就是监听socket对象内部是否有变化,是否在收发消息,Python中select模块提供了select poll epoll 三种方式来实现IO多路复用,支持不同的操作系统. windows : 提供select Mac : 提供select Linux : 提供select, poll, epoll (1)…
列表生成式 生成器 迭代器 列表生成式   举个例子 列表[0, 1, 2, 3, 4, 5, 6],要求把列表里的每个值加1,如何实现呢? L=[0, 1, 2, 3, 4, 5, 6] a={i+1 for i in L} print(a) 运行结果:{1, 2, 3, 4, 5, 6, 7} 说明:以上例子的实现方法就叫做列表生成式. 生成器 生成器:如果列表中的元素可以按照某种算法推算出来,这样就不必创建完整的list,从而节省大量的空间.在Python中,把这种一边循环一边计算的机制,…
列表生成式写法: [ i*2 for i in range(10) ]也可以带函数 [ fun(i) for i in range(10) ] 生成器:一边循环一边计算的机制称为生成器.在常用函数中,使用yield语句来返回结果,一次只返回一个结果.(可以节省内存,只有在调用的时候才会生成相应的数据 )特点:只记录当前的位置,只有一个__next__()方法.和列表的区别:生成器只有在调用的时候才会生成.生成器表达式:同列表解析语法,只不过是把列表解析的[]换成()比如:l = [ x*x fo…
阅读目录 第一篇:python入门 第二篇:字符编码.文件处理 第三篇:函数 第四篇:迭代器.生成器.三元表达式.列表生成式 第五篇:模块.包.软件开发规范 第六篇:日志模块 第七篇:常用模块 第八篇:面向对象 第九篇:异常处理 第十篇:网络编程 第十一篇:并发编程 第十二篇:MySQL系列 第十三篇:前端之Javascript基础 第十四篇:Django学习 更新中...…
1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = False   def check_log(func): def inner(): res = func() if LOGIN_INFO: print('验证成功!') return res else: print('验证失败!') return inner   def check_admin(func)…
1.Python简介 Python创始人  Guido Van Rossum,人称"龟叔",1989年圣诞节期间,为了在阿姆斯特丹打发时间,开发的一个新的脚本解释程序 作为ABC语言的一种继承.Python是一门简明并强大的面向对象的编程语言. WEB开发.软件开发.科学运算.大数据分析.自动化运维等方面广泛使用 主流语言的区别和特点 C\C++:学习成本高,学习周期长,偏系统底层,在开发硬件驱动.嵌入式.游戏引擎开发等领域有广泛的应用 Java:目前使用最广泛的编程语言,第一个跨平台…
1.python简介 python是一门简明并且强大的面向对象的开发语言,已经在WEB开发,软件开发,科学计算,大数据分析,自动化运维等领域得到了广泛的应用. 注意:所有测试均已python3为主,与python2与语法上可能略有不同,但是差别不是很大,有些情况下,如有使用python2调试程序的朋友自行调整相关代码. 2.python的优点 python和Java的使用领域几乎一样广泛,但是开发效率要高于Java,并且学习的成本比较低,在科学运算,数据分析,网站开发,爬虫开发,云计算,自动化运…
生成器 在函数中使用yield关键字就会将一个普通的函数变成一个生成器(generator),普通的函数只能使用return来退出函数,而不执行return之后的代码.而生成器可以使用调用一个next方法来返回生成器中上一次yield时候的状态.并且可以使用send方法给yield重新赋值.这样就可以灵活的进入和跳出函数.因此在程序中生成器可以中断当前函数,去执行其它的代码,在合适的时候跳回函数继续执行 def yield_test(): print('befor the first') fir…
你是否做了正确的决定? 深圳首期周未班的同学们大家好,我是Alex, 老男孩教育的联合创始人,Python项目的发起人,51CTO学院连续2届最受学员喜爱的讲师,中国最早一批使用Python的程序员,当然还有一堆头衔,看过我视频的人都知道我喜欢吹nb啦哈, 今天要收着点,讲正事.本来下面的话要在深圳当面跟你们说,但实在北京这边太多事抽不开,只能以这种方式表达了. 2009年我第一次接触Python,源于我做为移动飞信的第一名Linux工程师,一入职就要面临上千台服务器上的应用代码集中部署的问题,…
今日概要: - 函数对象 - 函数嵌套 - 命名空间和作用域 - 闭包 - 装饰器 - 迭代器 - 生成器 - 内置函数 一.函数对象 1.函数对象的定义: 函数是第一类对象,即函数可以当作数据传递 可以被引用,可以被当作参数传递,可以当返回值,可以当做容器类型的元素 #1 可以被引用 def foo(): print('from foo') func=foo print(foo) #函数对象 print(func) func() #执行函数 #2 可以当做参数传递 def foo(): pri…
1 生成器: 为什么要有生成器? 就拿列表来说吧,假如我们要创建一个list,这个list要求格式为:[1,4,9,16,25,36……]这么一直持续下去,直到有了一万个元素的时候为止.如果我们要创建这个list,那么应该是这样的: [i*i for i in range(1,10001)] #列表生成式,不要忘了 #结果就不列出来了 这样的话,这个list会占用极多的内存,如果我们能只将算法保存在list中,那么这个list所占的内存会大大减小,等我们需要用到list的值的时候,这个list会…
1.双层装饰器 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = False   def check_log(func): def inner(): res = func() if LOGIN_INFO: print('验证成功!') return res else: print('验证失败!') return inner   def check_admin(func…
1.python的数据类型之列表 列表是Python开发语言中最常见的数据类型之一,通过列表可以实现对数据的增删改等常用操作. 列表的定义:例子 names = ["Lucy","Lily","jack"] 列表的常用功能 1)取出列表中的元素:例子 取出列表的第二个元素:通过下标的方式,下标从0开始计数. 取出列表的最后一个元素: 2)切片:例子 注意列表在切片的时候是包头不包尾. names = ["Lucy","…
今日内容概要 1.cookie操作 2.pipeline 3.中间件 4.扩展 5.自定义命令 6.scrapy-redis 7.flask使用 - 路由系统 - 视图 - 模版 - message(闪现) - 中间件 - session - 蓝图 - 安装第三方插件 Scrapy - 创建project - 创建爬虫 - 编写 - 类 - start_urls = ['http://www.xxx.com'] - def parse(self,response): yield Item对象 y…
今日概要: 1.related_name和related_query_name的区别 2.through_fields的用途 3.django的事务提交 4.点赞的动画效果 5.多级评论的原理 6.上传文件 7.request.post用法 8.如果保留原来的页面 一.related_name和related_query_name的区别 related_name,用于定义反向关联时候,使用的字段名称 related_query_name 用于反向查询related_query_name + _s…
今日概要: 1.form表单进阶 2.中间件 3.缓存 4.信号 5.admin后台 上节课回顾 FBV,CBV 序列化 - Django内置 - json.dumps(xxx,cls=) Form验证 - 类 class LoginForm(Form): user = fields.CharField(...) email = fields.EmailField(...) email = fields.ChoiceField( choices=[()..] ) - 添加用户: GET form…
今日概要: 1.ORM一对多,多对多 2.正向查询,反向查询 3.聚合查询与分组查询 4.F查询和Q查询 5.ajax 6.分页器 一.ORM补充: django在终端打印sql语句设置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': {…
今日概要: 1.bootstrap使用 2.栅格系统 3.orm简介 4.路由系统 5.mvc和mtv模式 6.django框架 1.bootstrap的引用方式 1.Bootstrap 专门构建了免费的 CDN 加速服务,访问速度更快.加速效果更明显.没有速度和带宽限制.永久免费 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <me…
今日概要: 1.初识mysql 2.MySQL的增删改查 3.主键.外键 4.组合和分组 一.数据库的由来 1.什么是数据库? 数据的仓库,在ATM,购物车中存储数据为目录,称为数据库 1.数据以表格的形式出现 2.每行为各种记录名称 3.每列为记录名称所对应的数据域 4.许多的行和列组成一张表单 5.若干的表单组成database 2.数据库主要有哪些功能?   a.将数据保存到文件或者内存   b.接收特定的命令,然后对文件进行相应的操作       PS:如果有了以上软件,无须自己再去创建…
今日概要 1.线程 2.协程 3.socketserver 4.基于udp的socket(见第八节) 一.线程 1.threading模块 第一种方法:实例化 import threading import time #第一种方法实例化 def sayhi(num): print('running on num %s' %(num)) time.sleep(3) if __name__ == '__main__': t1 = threading.Thread(target=sayhi,args=…
今日概要: 1.异常处理使用 2.进程 3.paramiko模块使用 一.异常处理 1.常见的错误异常 #错误异常一 print(a) #NameError #错误异常二 int('sdadsds') #ValueError #错误异常三 a = {'a':1} a['b'] #KeyError #错误异常四1/0 #ZeroDivisionError 2.解释器返回错误异常内容如下: 3.在python中不同的异常可以有不同种类型(python中统一了类于类型,类型即类),去标识,不同的类对象…
今日概要: 一.面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) 2.__setattr__,__getattr__,__delattr__ 3.二次加工标准类型(包装/授权) 4.__setitem__,__getitem__,__delitem__ 5.__str__,__repr__,__format 6.__next__,__iter__实现迭代器协议 7.__doc__ 8.__del__析构函数 9.__enter__,__exit…
今日概要: 1.常用模块 - os模块 - random模块 - shutil模块 - hashlib模块 - pickle/json模块 - shelve模块 - configparser模块 - subprocess模块 - xml模块 - logging模块 - sys模块 - re模块 - time模块 - importlib模块 -base64模块 2.软件开发规范 3.初识面向对象 一.os模块 常规用法: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路…
今日概要: 1.内置模块 2.协程函数 3.递归 4.面向过程编程与函数编程 5.模块 6.包 7.re正则 一.内置模块 1.匿名函数lambda 定义:匿名函数通常是创建了可以被调用的函数,它返回了函数,而并没有将这个函数命名 #不使用匿名函数 def func(x,y): return x+y func(1,2) #使用匿名函数 f=lambda x,y:x+y print(f(1,2)) 2.max,zip(拉链函数),sorted用法 age={ 'dragon':18, 'panda…
本节内容 1.  RESTful 简介 2.  RESTful 设计指南 3.  Django REST Framework 最佳实践 4.  理论拓展与开放平台 5.  API文档化与测试 一  RESTful 简介 传统理解,软件和网络是两个不同的领域,很少有交集:软件开发主要针对单机环境,网络则主要研究系统之间的通信 互联网的兴起,使得两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件 网站即软件,这种“互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通…
Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost') cursor = db.cursor() cursor.…