- 博客(29)
- 收藏
- 关注
转载 Python秋招总复习——内存管理机制
一、关于Python存储的问题1.Python中万物皆对象,所以Python的存储问题就是对象的存储问题,每一个对象Python都会分配一块内存进行存储。2.存储多个相同的整数和浮点类型等较小的字符类型时,Python会执行缓存机制,不会同时存储多个相同的对象。3.列表、元组、字典等复杂数据类型存储其他对象时,存储的是对象的内存地址,而不是对象本身。二、Python的三种内存管理机...
2019-07-31 21:49:59
269
原创 scrapy爬虫实战——爬取京东男装商品信息
一、scrapy爬虫实战项目要求——爬取京东男装商品信息1.工具:使用scrapycrawl爬虫模板2.内容:爬取商品名称、商家名称、评分、价格(对应每一种颜色和尺码,数量=1时的价格)、多张图片3.提示:容易被封ip,需做好防范二、完成爬虫项目的框架构思1.创建爬虫项目:scrapy startproject jingdong2.创建爬虫文件(由于京东网商品信息中网页链接...
2019-07-28 13:27:14
1766
1
原创 Python学习日志——通过互联网实现采集功能
一、正则表达式和BeautifulSoup1.利用正则表达式查找所需内容通过正则表达式与BeautifulSoup库的结合使用,可以使查找所需内容的工作更加灵活。bsObj.findAll("img",{"src":re.compile("\.\.\/img\/difts\/img.*\.jpg")})#查找条件为: ../img/difts/ img.*.jpg../im...
2019-07-06 21:05:02
406
原创 Python学习日志——爬虫(三)正则表达式主要函数方法
一、compile 函数compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。语法结构:re.compile(pattern[, flags])import repattern = re.compile(r'\d+') # 用于匹配至少一个数字m = pattern.match('o...
2019-07-04 23:44:50
338
原创 Python学习日志——爬虫(二)复杂HTML解析:Beautifulsoup、正则表达式
一、beautifulsoup简介1.beautifulsoup库为第三方库,需要自行安装pip install beautifulsoup42.Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能,通过解析文档为用户提供需要抓取的数据,不需要太多代码就可以写出一个完整的应用程序。3.Beautiful Soup自动将输入文档...
2019-07-03 21:55:32
683
原创 Python学习日志——爬虫(一)urllib
一、urllib库基础1.urllib可以提供一个高级接口,通过url在网上获取数据2.url编码是基于utf-8的,在url中不允许出现空格3.urllib方法:(1)urllib.request.urlopen:发送请求,即发送想要爬取的网页链接,会返回网页的html代码 request.urlopen(url, data=None, [timeout, ]*, ...
2019-07-02 17:08:19
697
原创 Python学习日志0324 MySQL索引、事务、存储过程与SQL优化
一、MySQL索引1.定义:帮助MySQL高效获取数据的数据结构,能显著提高数据库查询速度。2.索引方法(1)BTREE索引要了解BTREE索引,首先需要了解B树和B+树的原理和特点:B树:一种动态的多分支排序树,通过控制节点数保持树的良好结构。特点:①设B树中最大节点数为m(m>2),则分支节点的儿子个数为[2,m],根节点至少有两个分支。 ...
2019-03-28 21:07:44
199
原创 Python学习日志0317 MySQL数据库语法及事例汇总(下)运算符、数据表的增删改查
一、MySQL运算符1.算数运算符2.字符串自动转换为数字MySQL中,由字符串表示的数字在需要计算时,会自动转换为数字,但要遵循两个基本原则:①如果第一位是数字的字符串被应用于算术运算中,则该字符串转换为第一个数字的值②如果数字和字符混合而成的字符串无法顺利转换为数字,则默认转换为03.比较运算符对运算符两边的表达式进行比较,比较的结果总是“1”(真),“0”(...
2019-03-28 11:34:17
221
原创 Python学习日志0317 MySQL数据库语法及事例汇总(上)数据库的创建与删除、主键与外键、主表与从表
一、创建数据库语法:createdatabase 数据库名注:此语法为创建一个具有特定名称的数据库,如果该名称已存在,则语句失败例:创建student数据库create database student;二、创建数据表语法:create table 表名( 列名1 列类型 [<列的完整性约束>], ...
2019-03-27 22:50:45
465
原创 Python学习日志0310 MySQL数据库定义、概念总结
一、MySQL数据库MySQL是一个小型关系型数据库管理系统1.特征:①性能快捷、优化SQL语言 ②容易使用 ③多线程和可靠性 ④多用户支持 ⑤可移植性和开放源代码 ⑥遵循国际标准和国际化支持 ⑦为多种编程语言提供API2.优点:快捷、可靠 开源、免费、与PHP组成经典的LAMP组合3.缺点:①不能直接处理XML数据 ②一些功能上支持的不够完善和成熟 ③不能提供任何OLAP(实时分...
2019-03-27 20:15:12
519
原创 python学习日志0228 协程
1.协程:又称微线程,纤程,可根据程序自身需要自己进行调度。(1)在一个线程中会有很多函数(子程序),在子程序执行过程中可以中断去执行别的子程序,而别的子程序也可以中断回来继续执行之前的子程序,这个过程就称为协程。同一线程内一段代码在执行过程中会中断然后跳转执行别的代码,接着在之前中断的地方继续开始执行(2)进程>线程>协程 协程为系统最小运行单位2.协程的优点:...
2019-02-28 19:21:15
275
原创 python学习日志0227 多进程
1.GIL:全局解释锁,导致线程不能利用多核优势提高效率,只能用单个cpu运行。注:cpu只进行计算,如果多线程不涉及计算,则多线程可以提高效率;如果多线程中存在计算,由于GIL(全局解释锁)的存在,反而会降低效率。一个cpu只能同时运行一个进程。注:cpu只进行计算,如果多线程不涉2.多进程实现方式:函数式和继承式(1)函数式实现多进程import mul...
2019-02-27 20:24:21
202
原创 python学习日志0225 多线程(1)
一、多线程1.cpu:中央处理器,间接通过操作系统运行程序。2.程序:代码指令集合3.进程:程序的执行过程(运行中的软件)4.线程:指令执行的最小单位(同一进程中同时运行的任务)5.线程安全:运行速度快,两个线程之间有联系(同步) 6.非线程安全(线程不安全):运行速度慢,两个线程之间没有关系(异步)7.线程的状态(生命周期)创建状态——就绪状态—...
2019-02-25 19:49:54
171
原创 Python学习日志0221 流——编码、I/0
一、编码1.明文:能看懂的文本内容暗文:硬盘存储的内容,相当于对明文进行加密2.明文→暗文:编码 暗文→明文:解码3.计算机只认识二进制0,14.几种编码方式ASCII(0-127) 8位ANSI(0-127为英文字母和其他符合,128-256为拉丁文) 8位GB2312(内有7000+简体汉字) 16位,当前八位和后八位均大于127时为汉字GBK(比GB2312多20000+...
2019-02-21 19:22:09
246
原创 Python学习日志0220 插入排序、字典
一、字典存储方式: 键值对key-value1.创建 a = {"name":"zs"} “:”前是键值,即数据的代名词(名字);“:”后是真实数据。2.键的作用:确定哪一棵红黑树,在存储时将键值和数据同时存储在同一个节点上。3.键值可以是字符串,数字,元组,不能是列表(因为键值是一个固定值,但列表可以改变)4.两个键值不可相同,如果键值相同,上一个数据会被覆盖。 5.v...
2019-02-20 17:57:13
252
原创 python学习日志0219 数据结构——平衡树、红黑树与哈希表
一、AVL树(平衡树):带有平衡条件的查找树(特殊的二叉查找树)1.要求:空树或左右子树高度相差小于等于1,且左右子树均为平衡树。2.经过插入、删除(不考虑)操作会导致左右子树高度差大于1,即失去平衡。3.可通过四种旋转方式使查找树恢复平衡。 单旋转:左旋和右旋 双旋转:先局部旋转再整体旋转。若局部旋转后成为平衡树则不用整体旋转。(先左后右 先右后左)4.旋转的实现(1)判断...
2019-02-19 15:46:54
279
原创 Python学习日志0218 树与树的实现
一、树的定义1.定义树的一种自然方式为递归方式,一棵树是一些节点的集合。2.根:树中最顶端的一个节点。根通过一条有向的边与子树的根相连。3.儿子:每一个子树的根是其上一个节点的儿子。4.树叶(叶子节点):没有儿子的节点 。5.兄弟:具有相同父节点的节点。6.路径:从一个节点到另一节点的路线。7.路径的长:从一个节点到另一节点的边数。8.深度:从根到该节点的边数。...
2019-02-18 18:56:58
195
原创 Python学习日志0128 队列,中缀表达式转后缀表达式
1.栈与队列的区别(1)栈是只能在表的一端进行插入和删除操作的线性表,即先进后出(FILO),在栈中加入元素叫做入栈,从栈中删除元素叫做出栈。(2)队列是能从队尾添加数据,从队头删除数据的线性表,即先进先出(FIFO) ,只能查看队头元素2.普通队列的实现通过列表完成对队列的实现,分别确定列表的两端为插入端和删除端,并将队列抽象为类,将先先进先出作为队列的方法#普通队列class...
2019-01-28 18:51:14
252
原创 Python学习日志0126 双向链表与栈的实现
1.双向链表与单链表和双端链表不同,双向链表中每个节点有三个属性,分别为存储数据data,上一节点地址(前驱)pre和下一节点地址(后继)next。双向链表的优势在于,可以记录链表中节点的前驱和后继,从而可以在链表中双向查找所需元素,有利于提高修改链表两段元素时的效率,适用于需要双向查找节点值的情况。class NullLinkedError(BaseException): #自定...
2019-01-26 19:54:52
254
原创 Python学习日志0125 抽象数据类型与链表
1.抽象数据类型(ADT)概念:拥有属性和方法,属性可以存储数据,方法操作属性(属性为私有时才需要使用抽象数据类型)2.线性表概念:零个或多个数据元素的有限序列。3.链表(删除和插入较快) 列表(查看较快)(1)链表的属性:data存储数据 next下一个节点的地址(2)链表的方法:增删改查(3)next:后继 pre:前驱例1 单链表单链表缺点:尾部加入元素时必须从...
2019-01-25 18:55:48
291
原创 Python学习日志0124 异常,抽象类
1.错误:语法错误:写代码过程中会出现飘红逻辑错误:运行后出现的错误2.异常:程序执行过程中出现问题导致程序无法执行异常是逻辑错误的一种3.常见异常BaseException:所有异常的基类(父类)AttributeError 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性xIOError 输入/输出异常;基本上是无法打开文件ImportError 无法引入模块或...
2019-01-24 16:18:28
2146
原创 Python学习日志0122
1.创建类格式:class 类名():类体(包含属性和方法)2.创建对象格式:引用(变量或标识符) = 类名()init(self): 构造函数构造函数作用:创建对象注:return None可以省略,但return后只能填加None。3.方法:类方法(建议用类名调用) 对象方法(建议用对象调用)4.面向对象的三大特性:继承,封装和多态继承:class 子类/派生类(父类/超...
2019-01-22 18:40:05
111
原创 Python学习日志0121
编程语言的发展:基于机器语言 汇编语言 高级语言(面向过程):c语言 高级语言(面向对象):c++ java python1.类:对具有相同属性和方法的抽象。(类是对事物的描述,表示具有相同特征的一类事物。)2.对象:具有属性和方法的实物。(对象是对事物的具体体现,表示具体的某一个事物)class person():def init(self,name,age,sex,height...
2019-01-21 18:24:16
132
原创 Python学习日志0119
字符串操作1.字符串截取s = “hello”print(s[0:3])(1)截取全部字符s = “hello”print(s[:])(2)倒序截取字符s = “hello”print(s[::-1])(3)[]中有一个冒号时,冒号左右数字代表截取的起点和终点,步长默认为1;若冒号两边没有数字,则截取字符串的全部内容。(4)[]中有两个冒号时,三个参数分别代表起点、终点和步长...
2019-01-19 20:33:04
931
原创 Python学习日志0118
1.函数的参数argument(实参) parameter(形参)(1)必需参数def asd(a): a为形参print(a)asd(1) 1为实参注:①当形参中给定数值,如a=9,实参可不填②当实参和形参都有值时,使用实参中的数值③在给参数赋值时,先写必需参数,后写默认参数例:def asd(b,a=12):print(a)asd(15,5)(2)默认...
2019-01-18 20:29:14
158
原创 Python学习日志0117
1.函数(1)函数作用:将功能封装在一起,方便使用,简化编程操作例1:取绝对值def abs(a):#a = -9if a<0:print(-a)else:print(a)abs(-9)例2:求和def add(a,b):print(a + b)add(1,2)(2)函数结构def 函数名(参数列表):函数体return例3:显示个人信息p = [“hjx...
2019-01-17 20:21:43
133
原创 Python学习日志0116
1.排序:(1)排序方式:内置排序 冒泡排序 插入排序 选择排序 希尔排序 堆排 快排 归并排序(2)内置排序:①当原数组无用时使用a = [4,6,8,5,7,3,1]a.sort()print(a)②当原数组有用时使用a = [4,6,8,5,7,3,1]b = sorted(a)print(b)③检测数组位置a = [4,6,8,5,7,3,1]b =...
2019-01-16 19:25:35
118
原创 Python学习日志0115
1.循环(1)for循环循环结构:for i in range(起点,终点,步长)循环体(2)while循环循环结构:起点while 表达式(bool类型)/终点循环体步长(3)for语句用于有限次循环(循环次数已知),while语句用于无限次循环或循环次数未知的循环(4)for循环中,range后括号内元素可适当省略:当括号内有两个数时,分别默认为起点和终点,步长默认为1;...
2019-01-15 19:51:51
220
原创 Python学习日志0114
1.注释(1)当注释为一行时,在注释前加#。(2)当注释为两行以上时,可在注释前后分别加三个单引号或双引号。单引号和双引号必须为英文状态下输入。(3)注释部分不作为代码运行,只起到解释说明作用。(4)编写代码时多做注释,为未来工作养成良好习惯。2.数据类型(1)整数类型:int 小数类型:float 数值没有限制(2)字符串类型:str 字符串使用...
2019-01-15 07:25:40
159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅