Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了,所以eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值. 1. 什么是序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中…
Python学习笔记(十): 装饰器的应用 列表生成式 生成器 迭代器 模块:time,random 1. 装饰器的应用-登陆练习 login_status = False # 定义登陆状态 def type(auth_type): # 装饰器传参函数 def login(fucn): # 装饰器函数 def inner(): # 附加功能 global login_status # 将登陆状态变量变为全局变量 if login_status == False: if auth_type ==…
以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-23 21:30 学习笔记 1,包导入是把计算机上的目录变成Python的命名空间.包导入时也可以使用import和from语句.目录路径只能以点号.间隔.例如有这样一个目录结构: dir0/dir1/dir2/mod.py 则导入语句如下: import dir1.dir2.mod 导入时必须遵循如下规则: dir1和dir2目录中必须含有一个__init_…
以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-24 23:59 学习笔记 1,Python中的大多数OOP故事都可以简化为一个表达式:object.attribute 当类启用时,为了找出attribute首次出现的地方,Python会先搜索Object,然后是该对象之上的所有类,安装由下至上.由左至右的方式搜索. 2,调用类的函数时,总是隐含着类的实例.附加在实例上的属性只属于那些实例,但附加在类上的属…
heapq内置模块位于./Anaconda3/Lib/heapq.py,提供基于堆的优先排序算法 堆的逻辑结构就是完全二叉树,并且二叉树中父节点的值小于等于该节点的所有子节点的值.这种实现可以使用 heap[k] <= heap[2k+1] 并且 heap[k] <= heap[2k+2] (其中 k 为索引,从 0 开始计数)的形式体现,对于堆来说,最小元素即为根元素 heap[0]. 1.初始化 可以通过 list 对 heap 进行初始化,或者通过 api 中的 heapify 将已知的…
1. 概念说明 1.1 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限.为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间.针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使…
一. 进程 1. 多进程multiprocessing multiprocessing包是Python中的多进程管理包,是一个跨平台版本的多进程模块.与threading.Thread类似,它可以利用multiprocessing.Process对象来创建一个进程.该进程可以运行在Python程序内部编写的函数.该Process对象与Thread对象的用法类似. 创建一个Process实例,可用start()方法启动. join()方法可以等待子进程结束后再继续往下运行,通常用于进程间的同步.…
完善类的内容 示例: #! /usr/bin/env python # coding =utf-8 #通常类名首字母大写 class Person(object): """ This is about a person #类文档 """ def __init__(self,name,lang="python"):#初始化函数,类被实例化的时候,要执行 self.name = name self.lang = lang self…
创建简单的类 新式类和经典类(旧式类) Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Python 3.x中默认都是新式类,经典类被移除,不必显式的继承object 新式类都从object继承,经典类不需要 新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而旧式类的MRO算法是采用深度优先搜索 新式类相同父类只执行一次构造函数,经典类重复执行多次 截止到python2.1,只存在旧式类.旧式类中,类名和ty…
字典:是python中唯一的映射类型,字典中每一项都是由键-值对组成的项.字典中没有索引,只有键和值.键的类型可以是整型,变量或字符串. 创建和访问字典: >>> dict1 = {'Lining':'Anything is possible', 'Nike':'Just do is', 'Adidas':'Impossible is nothing'} >>> for i in dict1: ... print(i) ... Lining Adidas Nike &g…
import hashlib ybq_pwd='bugaosuni' m=hashlib.md5() bytes_ybq=ybq_pwd.encode()#把字符串转成bytes类型,中文字符在Python中是以unicode存在的,我们在进行hash前必须把数据转换成bytes类型 m.update(bytes_ybq)#加密,不能字符串,只能传byte类型,二进制 print(m.hexdigest())#加密后的结果 #md5加密是不可逆的,不能被解密的 #撞库 def md5_passw…
基本概念 问题空间:问题空间是问题解决者对一个问题所达到的全部认识状态,它是由问题解决者利用问题所包含的信息和已贮存的信息主动的地构成的. 初始状态:一开始时的不完全的信息或令人不满意的状况: 目标状态:你希望获得的信息或状态:     操作:为了从初始状态迈向目标状态,你可能采取的步骤. 对象:对象(object),是面向对象(Object Oriented)中的术语,既表示客观世界问题空间(Namespace)中的某个具体的事物,又表示软件系统解空间中的基本元素. 对象:一个对象具有自己的状…
一.装饰器 1.知识储备 函数对象 函数可以被引用 函数可以当参数传递 返回值可以是函数 可以当作容器的元素 def func1(): print (666) def func2(): print (666) def func3(): print (666) list1=[func1,func2,func3] for i in list1: i() *args:接收溢出的位置参数 **kwargs:接收溢出的关键字参数 名称空间与作用域 2.闭包函数 闭包函数的定义:定义在函数内部的函数,特点是…
1.render_to_reponse() 不同于render,render_to_response()不用包含request,直接写template中文件 2.locals() 如果views文件中的函数里变量过多的话,可以在render或render_to_response()里面直接增加render(request,'index.html',locals())这样在前端界面渲染的时候可以直接写变量名 locals()的缺点是不想传递过去的变量也传递过去了 3.JS中的方法: a: hove…
目录: 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令事务 索引 创建数据库 外键 增删改查表 权限 python 操作mysql  ORM sqlachemy学习 内容: 1.数据库介绍 什么是数据库? 数据库是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建.访问.管理.搜索和复制所保存的数据,我们也可以将数据存储在文件中,但是文件读写数据速度相对较慢,所以现在我们使用关系型数据库管理系统RDBMS来存储…
一:定义类并创建实例 Python中定义类,通过class关键字,类名开头大写,参数列表为所继承的父类.如果没有需要明确继承的类,则继承object. 使用类来创建对象,只需 类名+() 形式即可,python中没有new创建对象的. class Person(object): pass xiaoming = Person() xiaohong = Person() 二:动态改变的类属性 Python可以在创建实例后,通过实例来添加属性.而不是直接在类中定义好所有属性,并且同一个类的不同对象,可…
Python的函数除了正常使用的必选参数外,还可以使用默认参数.可变参数和关键字参数. 默认参数 基本使用 默认参数就是可以给特定的参数设置一个默认值,调用函数时,有默认值得参数可以不进行赋值,如: def power(x, n=2): s=1 while n > 0: n = n - 1 s = s * x return s 这样调用power(5)时,相当于调用power(5, 2). 设置默认参数时的注意事项: 一是必选参数必须在前,默认参数在后,否则Python的解释器会报错: 二是如何…
Preference直译为偏好,博友建议翻译为首选项.一些配置数据,一些我们上次点击选择的内容,我们希望在下次应用调起的时候依旧有效,无须用户再一次进行配置或选择.Android提供preference这个键值对的方式来处理这样的情况,自己主动保存这些数据,并立时生效,同一时候Android提供一种类似的layout的方式来进行Prefernce的布局. 一个简单的Preferenece样例 步骤1:编写preference XML,在res/xml/下增加我们的preference XML文件…
一.QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. Entry.objects.all()[:5] # (LIMIT 5) 不支持负的索引(例如Entry.objects.all()[-1]).通常,查询集 的切片返回一个新的查询集 —— 它不会执行查询. 可迭代 articleList=models.Article.objects.all() for article in articleList: print…
一.基于jQuery的ajax实现(最底层方法:$.jax()) $.ajax( url: type:''POST“ ) $.get(url,[data],[callback],[type])  #callback是发送成功后就执行的函数,type是告诉服务器需要什么数据,type:text|html|json|script $.post(url,[data],[callback],[type]) 例子: $.get('/jquery_get/',{name:'gavin'}) //name关键…
目录: 一.路由系统URL 1.Django请求生命周期 2.创建Django project 3.配置 4.编写程序 二.视图 三.模板 四.ORM操作 内容: 一.URL 1.Django请求生命周期 URL对应关系(匹配)-> 视图函数 -> 返回用户字符串   URL对应关系(匹配)    -> 视图函数 -> 打开一个HTML文件,读取内容 2.创建Django project django-admin  startproject myproject cd  myproj…
目录: 一.JavaScript正则表达式 1.test  2.exec 二.BootStrap  1.响应式  2.图标.字体  3.基本使用 三.Django 1.安装  2.创建目录  3.进入创建的目录中,该目录概括一个目录与一个文件  4.运行程序  5.创建APP  6.APP目录 内容: 一.JavaScript正则表达式 1.test 判断字符串是否符合规定的正则表达式 例子: rep = /^\d+$/ rep.test('123')返回true 2.exec 获取匹配的数据,…
目录: 一.基础概念 1.多进程 2.进程间通信 3.进程锁 4.进程池 5.协程 a) greenlet b) Gevent 6.论事件驱动与异步IO 7.IO多路复用 8.Python Select 一.基础概念: 1.多进程multiprocessing 多进程和多线程模块一样,都是一个可以使用一个API产生多个进程的模块,多进程提供了本地与远程的并发,通过使用子进程代替线程,多进程比GIL下的多线程更高效,基于这个原因,多进程模块可以允许开发人员在一个给定的设备上运行多个进程 备注:py…
一.切片 1.定义: 经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符. 2.语法: A[1:3] 取出1到3,都是正数的情况下,缺填的为0(第一个),end(最后一个) B[-3:] 取出倒数第三个到倒数第一个,都是负数的情况下,缺填的为-1(最后一个) C[1:10:2] 从1到10,每2个取一个 跟matlab差不多的语法,就是对一个向量可以进行矩阵操作.可以对List.tuple,string,dict,set等使用 二.切片 1.定义: 如果给…
一.zip的坑 zip()函数接收多个可迭代数列,将数列中的元素重新组合,在3.0中返回迭代器指向 数列首地址,在3.0以下版本返回List类型的列表数列.我用的是3.5版本python, 所以zip返回的是指向地址. 先看几个例子 结果: 可见,在3.0以上版本,对zip函数返回的结果采用list函数可以转化为列表. 通过列表生成式同样可以将zip结果化为列表. 结果: 当zip操作的对象为一个列表,那么生成的列表中每个元素(元祖)中 为(n,)形式. 当zip操作的多个列表长度不一样,那么z…
在python开发项目或者做自动化测试时候,在测试完成后需要将测试结果总结后进行上报,那么我们就可以通过发送邮件来完成这项工作. 下面我们来看看python中怎么发送邮件的,python中发送邮件可以使用smtplib模块或者yagmail模块,其实yagmail模块里面已经封装了smtplib模块,所以下面我们直接学习下yagmail模块发送邮件.模块可在我的网盘下载:https://pan.baidu.com/s/1hvS78sv6-XOwBLXLOIa5GQ,下载之后pip install…
一.python操作excel,python操作excel使用xlrd.xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的.这几个模块使用pip安装即可,下面是这几个模块的使用.  二.xlrd模块,xlrd模块用来读excel,具体用法如下: import xlrd #打开excel wb=xlrd.open_workbook('abc.xlsx')#打开的这个excel必须存在,否则会报错 #获取所有sheet页的…
一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 二.使用函数的好处: 1.简化代码2.提高代码的复用性3.代码可扩展 三.p…
一.生成器 生成器是什么?其实和list差不多,只不过list生成的时候数据已经在内存里面了,而生成器中生成的数据是当被调用时才生成呢,这样就节省了内存空间. 1. 列表生成式,在第二篇博客里面我写了三元运算符,和那个有点像,如果要生成列表[‘01’, ‘02’, ‘03’, ..., ‘10’]怎么做?除了循环还可以用一行语句代替循环生成. list = [str(i).zeffill() for i in range(1,11)] 生成器:要创建一个generator,有很多种方法.第一种方…
在能够获取到网页内容之后,发现内容很多,那么下一步要做信息的筛选,就和之前的筛选图片那样 而在python中可以通过正则表达式去筛选自己想要的数据 1.首先分析页面内容信息,确定正则表达式.例如想获取下面这些内容的链接 可以通过筛选出符合<li><a href="xxx"的内容,获取到href中的链接,设置正则:reg = r'<li><a href="(.+?)"'去筛选数据就OK了: 2.在python中用正则表达式去筛选数据…