![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python进阶之路
文章平均质量分 91
EchoPython
这个作者很懒,什么都没留下…
展开
-
50个Python练手项目列表
50个Python练手项目列表前言:不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说大家都知道学编程语言一定要做项目才行。50个Python项目列表:1、【Python 图片转字符画】2、【200行Python代码实现2048】3、【Python3 实现火车票查询工具】4、【高德API+Python解决租房问题 】5、【Python3 色情图片识别】6、【Python 破解验证码】7、【Python实现简单的Web服务器】8、【pygame开发打飞机游戏原创 2020-12-26 14:28:33 · 472 阅读 · 0 评论 -
Python进阶之路(一),所谓的类不过如此
类的描述我们习惯于将生物分为动物,植物,进而又有猫科,犬科等细分.通过对个体的研究,归纳其共同特征,抽象成了描述种类模板,有了这些模板后,可据此创建大量行为类似的个体,所以分类是一个基础工程在专业术语上,我们将族群或类别乘坐 类型(class) 将个体称之为实例(instance). 类型持有同组个体的共同形态和共享状态,而实例仅仅保存只有特性即可.如此在内存空间布局上才是最高效的.以张三...原创 2019-07-08 13:23:09 · 352 阅读 · 0 评论 -
Python进阶之路(二),命名空间namespace
引言:在通常认知中,变量是一段具有特定格式的内存,变量名是内存别名,因为在编码阶段,无法确定内存的具体位置,故事用名称层符号代替.注意:变量名和指针不同接下来,静态编译和动态解释性语言对于变量名的处理方式完全不同,静态编译器或连接器会以固定地址,或者直接间接寻址执行代替变量名,也就是说变量名不参与执行过程,可以被剔除 ;但是在解释性语言中,名字和对象通常是两个运行期试题,名字不但有自己的...原创 2019-07-08 15:21:13 · 3668 阅读 · 0 评论 -
Python进阶之路(三)之float奇舍偶入?五成双?
引言,默认float 类型储存双精度(double) 浮点数,可表达17到17个小数点.从实现方式看,浮点数以二进制储存十进制的近似值.这可能导致执行结果和编码的预期效果不符合,造成一定量的缺陷,所以对精度有严格要求的场合,应该选择固定精度类型.一般可以通过float.hex 方法输入实际储存值的十六进制格式字符串,以检查执行结果为什么不同.还可以使用该方式实现浮点值的精确...原创 2019-07-08 18:48:08 · 470 阅读 · 0 评论 -
Python进阶之路(四)列表
1.列表概述仅仅从操作方式上看,列表像是数组和链表的结合体,除按照索引访问外,还支持插入,追加,删除等操作.完全可当做队列或者栈进行使用.如果不考虑性能问题,列表视乎是一种易用且功能完善的理想数据结构.In [1]: x= [1, 2] ...原创 2019-07-08 21:41:35 · 115 阅读 · 0 评论 -
Python进阶之路(五)之tuple变异,属性访问.
引言尽管列表和元祖没有直接的关系,但是在操作上,元祖可以被当做列表的只读版本,倔强的是 他不可修改1.元祖概述In [4]: a = tuple([1,'abc']) In [5]: a[0] =1 ...原创 2019-07-09 13:35:15 · 152 阅读 · 0 评论 -
Python进阶之路(六)比list更迅速的还有数组
引言数组与列表,元祖的本质区别在于: 元祖单一性以及内容嵌入.In [5]: memoryview(a).hex() Out[5]: '11223344'In [6]: import array ...原创 2019-07-09 13:52:47 · 138 阅读 · 0 评论 -
OAuth 2.0 前生今世之带你快速入手第三方认证
RFC 6749OAuth 2.0 的标准是 RFC 6749 文件。该文件先解释了 OAuth 是什么。OAuth引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。…资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。这段话的意思就是,OAuth 的核心就是向第三方应用颁发令牌。然后,RFC 6749 接着写道:(由于互联网有多种场景,)本...原创 2019-07-09 14:33:56 · 143 阅读 · 0 评论 -
Python 垃圾回收机制和如何解决循环引用
引用计数:是一种垃圾收集机制,而且也是一种最直观,最简单的垃圾收集技术, 当一个对象的引用被创建或者复制时,对象的引用计数加 1;当一个对象的引用被销毁时,对象的引用计数减 1;当对象的引用计数减少为 0 时,就意味着对象已经没有被任何人使用了,可以将其所占用的内存释放了。虽然引用计数必须在每次分配和释放内存的时候加入管理引用计数的动作,然而与其他主流的垃圾收集技术相比,引用计数有一个最大的有点...原创 2019-07-15 13:18:11 · 849 阅读 · 0 评论 -
如何编写清晰可读的的Python代码
初衷python是一个入门十分容易的编程语言,但是想要写好python却是一件不容易的事情,如果不是专业使用python的人,只是将2. python作为一个脚本语言或者用来处理数据,到了掌握基本的语法之后,便不再寻求进步。但是相信每个学习python的人都知3. 道pythonic这个单词,这个词语很难定义,全靠心领神会,但大家心中都认同Tim Peters的《The Zen of Pyth...原创 2019-07-15 13:46:12 · 188 阅读 · 0 评论 -
常见的 HTTP 头及其作用
http 请求中的常用头(请求头)的含义* http 请求是指从客户端到服务器端的请求消息。包括:消息首行中,对资源的请求方法、资源的标 识符及使用的协议 Accept:告诉服务器,客户端支持的数据类型。Accept-Charset:告诉服务器,客户端采用的编码。Accept-Encoding:告诉服务器,客户机支持的数据压缩格式。Accept-Language:告诉服务器,客户...原创 2019-07-15 14:10:36 · 1759 阅读 · 0 评论 -
Python 中三大框架各自的应用场景
Django:主要是用来搞快速开发的,他的亮点就是快速开发,节约成本,正常的并发量不过 10000, 如果要实现高并发的话,就要对django 进行二次开发,比如把整个笨重的框架给拆掉,自己写 socket 实现 http 的通信,底层用纯 c,c++写提升效率,ORM 框架给干掉,自己编写封装与数据库交互的框 架,因为啥呢,ORM 虽然面向对象来操作数据库,但是它的效率很低,使用外键来...原创 2019-07-15 15:13:33 · 187 阅读 · 0 评论 -
HttpRequest 和 HttpResponse有什么区别
分别是做什么的HttpRequest 是 django 接受用户发送多来的请求报文后,将报文封装到 HttpRequest 对象中去。HttpResponse 返回的是一个应答的数据报文。render 内部已经封装好了 HttpResponse 类。视图的第一个参数必须是 HttpRequest 对象,两点原因:表面上说,他是处理 web 请求的,所以 必须是请求对象,根...原创 2019-07-15 15:31:24 · 1908 阅读 · 0 评论 -
python的可变和不可变数据类型
不可变数据类型python中不可变数据类型的定义为:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,就称不可变数据类型,包括:int(整型)、string(字符串)、tuple(元组)整型首先我们来看一下整型为什么是不可变数据类型。给一个变量x赋值,然后改变这个x的值,输出前后两次的内存地址id和数据类型typeid():获取对象的内存地址type()...原创 2019-07-18 14:02:56 · 186 阅读 · 0 评论 -
python的IDE(集成开发环境)之PyCharm的基本使用
PyCharm是我一直在使用的python编辑器,今天具体讲一下PyCharm的使用。分为社区版本,和商业版本下载首先是下载PyCharm,PyCharm的下载地址:https://www.jetbrains.com/pycharm/这个是一个商业软件,大家可以选择购买,或者选择试用(免费试用30天),或者在网上找激活码。创建项目下载好之后就可以创建项目了,选择Create New ...原创 2019-07-18 14:09:26 · 505 阅读 · 0 评论 -
Python使用微信接入图灵机器人
1.wxpy库介绍wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。文档地址:https://wxpy.readthedocs.io从 PYPI 官方源下载安装:pip install -U wxpy从豆瓣 PYPI 镜像源下载安装,推荐国内用户选用:pip install -U wxpy -i "https://pypi.doubanio...原创 2019-07-18 14:15:56 · 269 阅读 · 0 评论 -
Python批量发送邮件
1.SMTP协议SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,是一个相对简单的基于文本的协议, 在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用TCP端口25。要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXc...原创 2019-07-18 14:22:22 · 1040 阅读 · 0 评论 -
Python批量处理图片
1.Pillow库介绍Pillow是Python里的图像处理库,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等;安装pip install pillow2.Image类PIL中最重要的类是Image类,使用前需要先从PIL中导入Image类,要从文件加载图像可以使用Image类中的open()函数:Image.open(...原创 2019-07-18 14:29:58 · 1972 阅读 · 0 评论 -
Python操作word
1.Python写word文档要操作word文档首先需要安装python-docx库;pip install python-docx然后导入docx模块,或者从docx模块中导入Document类;from docx import Document就可以使用Document()创建一个word文档,若指定路径则是打开文档;document = Document()...原创 2019-07-18 14:34:43 · 1157 阅读 · 0 评论 -
Python爬虫中如何突破反爬虫策略
1.什么是爬虫和反爬虫爬虫是使用任何技术手段批量获取网站信息的一种方式,反爬虫是使用任何技术手段阻止别人批量获取自己网站信息的一种方式;2.User-Agent介绍User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息...原创 2019-07-18 14:39:02 · 852 阅读 · 0 评论 -
爬虫利器Scrapy之Crawl Spider 模板的使用
1.Spider模板scrapy默认创建的spider模板就是basic模板,创建spider文件的命令是:scrapy genspider dribbble dribbble.com,查看spider*模板的命令是:scrapy genspider --list;在项目中明确指明使用crawl生成模板生成spider的命令是:scrapy genspider -t crawl csdn w...原创 2019-07-18 14:42:55 · 1019 阅读 · 0 评论 -
Python第三方模块Beautiful Soup模块使用
1.Beautiful Soup模块的介绍Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库,简单来说,它能将HTML的标签文件解析成树形结构,然后方便地获取到指定标签的对应属性,还可以方便的实现全站点的内容爬取和解析;Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使...原创 2019-07-18 14:53:53 · 239 阅读 · 0 评论 -
Python第三方库requests模块使用
安装 requests# 在命令行工具中使用pip install requests# 使用前需要导入import requests下面我们来看一下requests库的几种常用高级用法会话对象会话对象可以跨请求保持某些参数,在同一个 Session 实例发出的所有请求之间保持 cookie,会话也可用来为请求方法提供缺省的数据;from requests import Se...原创 2019-07-18 14:58:52 · 227 阅读 · 0 评论 -
python时间模块的使用
前言:在开发中经常会与时间打交道,如:获取事件戳,时间戳的格式化等,这里简要记录一下python操作时间的方法。python中常见的处理时间的模块:time:处理时间的模块,如获取时间戳,格式化日期等datetime:date和time的结合体,处理日期和时间calendar:日历相关的模块,如:处理年历/月历time模块介绍说明:time模块主要讲解如下内容:时间戳...原创 2019-07-16 14:02:30 · 168 阅读 · 0 评论 -
python的requests模块的使用
前言:在web后台开发过程中,会遇到需要向第三方发送http请求的场景,python中的requests库可以很好的满足这一要求,这里简要记录一下requests模块的使用!说明:这里主要记录一下requests模块的如下几点:requests模块的安装requests模块发送get请求requests模块发送post请求requests模块上传文件更详细的使用参见官方文档:...原创 2019-07-16 14:16:28 · 164 阅读 · 0 评论 -
python装饰器的使用
前言:在web开发过程中,经常会遇到数据查询慢的问题,对于查询一些时效性不是特别强的数据可以将数据缓存到redis中, 查询的时候直接到缓存中读取数据,这样就可以大大加快查询速度。 但是在开发前,事先没有增加缓存这个功能,并且需要增加缓存功能的地方又有很多,为了在不改变原有代码的基础上添加新的功能,这就要用到python的装饰器。这里简要记录一下装饰器的使用!说明:弄清了装饰器函数的执行...原创 2019-07-16 14:23:09 · 86 阅读 · 0 评论 -
Python的map/defaultdict/sorted/filter函数的使用
前言在python开发中会经常用到map/defaultdict/sorted/filter函数,这里记录一下这几个函数的使用方法。map函数的使用语法:map(function, iterable, …)函数执行过程:以iterable序列中的每一个元素依次去调用function函数,返回每次调用function函数的返回值组成的新列表例子#coding:utf-8''' ...原创 2019-07-16 14:32:33 · 301 阅读 · 0 评论 -
python使用ElementTree操作xml
前言:在web数据传输过程中,用到最多的两种数据传输格式分别是json和xml,现记录一下如何使用python的ElementTree库来操作xml,实现对xml的增删查改!说明:这里通过以下方式来操作xml标签节点的CRUD标签属性的CRUD标签值的CRUDxml数据样例:<?xml version='1.0' encoding='utf-8'?><roo...原创 2019-07-16 14:39:35 · 591 阅读 · 0 评论 -
Python操作redis
前言:最近工作中需要用到redis来缓存一些时效性较低的数据,来减少数据库的查询压力,如:缓存页面某趋势图最近30天的数据等,这里简要记录一下使用过程:使用原始命令操作redis数据库;使用python操作redis数据库;使用原始命令操作redis数据库1.操作数据库 1.连接redis客户端: redis-cli auth 密码 2.确认数据库使用连通...原创 2019-07-16 14:44:30 · 94 阅读 · 0 评论 -
Python读写ini配置文件
前言:在日常工作中经常需要读写配置文件,这里将配置文件的读写封装成一个类,供后续使用关键点代码的介绍:def lock(func): def wrapper(self, *args, **kwargs): # self变量,可以调用对象的相关方法 with Lock(): return func(self, *args, **kwargs)...原创 2019-07-16 14:47:32 · 410 阅读 · 0 评论 -
使用python/java生成uuid
前言在工作中经常会遇到使用32位的uuid作为数据库中的主键id情况,这里记录一下分别使用python和java来生成uuid的方法!python生成uuid# coding:utf-8import uuiddef get_uuid(): """获取uuid""" return str(uuid.uuid1()).replace("-", "").upper()...原创 2019-07-16 14:49:10 · 495 阅读 · 0 评论 -
Python异常处理
今天学习的是对测试中的异常进行捕获,主要用到了两个方法,assertRaises()和assertRaisesRegex()方法测试中的异常捕获对需要测试的接口异常进行捕获from unittest import TestCasefrom unittest import maindef division(a, b): return a / bclass MyTe...原创 2019-07-19 13:11:48 · 166 阅读 · 0 评论 -
Python模块之unittest使用
1.单元测试单元测试是指对软件中的最小可测试单元进行检查和验证,Python中有一个自带的单元测试框架unittest模块,不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果;2.unittest库中的基本组件unittest.TestCase():是所有测试用例类继承的基本类,一...原创 2019-07-19 13:17:26 · 268 阅读 · 0 评论 -
Python模块之unittest断言的使用
断言使用我们可以直接在测试用例里面添加unittest框架自带的断言(也就相当于判断),断言方法提供了测试结果是True还是False,所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回;如果断言失败则抛出一个AssertionError,并标识该测试为失败状态;如果成功,则标识该测试为成功状态;如果异常,则当做错误来处理;先来看一个实例,...原创 2019-07-19 13:22:13 · 685 阅读 · 0 评论 -
requests第三方库在测试中的使用
1.requests库文档链接官方文档:http://www.python-requests.org/en/master/第三方中文文档:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html2.使用requests发送get请求使用requests发送get请求,首先需安装requests模块,然后导入使用;...原创 2019-07-19 13:30:29 · 163 阅读 · 0 评论 -
Django网站设计之Cookie 和 Session分析
1.Cookie概念当用户使用浏览器首次访问一个支持Cookie的网站的时候,用户会提供包括用户名在内的个人信息发送到服务器;接着服务器端接收到客户端发送过来的http请求后,会发送一个http响应到客户端,其中包含Set-Cookie头部,自此,客户端再向服务器发送请求的时候,都会把相应的Cookie再次发回至服务器,服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求...原创 2019-07-19 13:34:32 · 91 阅读 · 0 评论 -
Python操作SQLite数据库
今天我们要学习的是关于SQLite数据库的相关知识,首先我们来看一下什么是SQLite数据库1.什么是SQLite数据库SQLite是一种嵌入式数据库,它的数据库就是一个文件,且SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程序库中,与许多其它数据库管理系统不同,SQLite不是一个客户端/服务器结构的数据库引擎,而是被集成在用户程序中的嵌入式关系型数据库;SQLi...原创 2019-07-19 13:38:49 · 222 阅读 · 0 评论 -
Python学习之Redis的使用
1.Redis的概念Redis运行过程,也就是读写过程都是基于内存实现的key/value存储,对比与memcached而言,会基于异步方式(快照)同步到文件系统,实现数据 的持久性存储,单一进程响应用户的所有的请求,具有主从架构 ;Redis支持存储的value类型有很多,包括string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型);2.Wi...原创 2019-07-19 13:47:24 · 117 阅读 · 0 评论 -
Python操作Redis缓存数据库
今天我们来学习如何使用Python操作Redis缓存数据库,首先我们需要使用到一个redis库,使用之前先安装一下,依旧是使用pip进行安装:pip install redis安装好了redis库之后,我们只需使用import redis导入即可使用了,是不是很方便呀,之前的文章里也用到很多库,大部分都是通过这两个步骤使用的;接下来我们开始讲解如何操作Redis数据库,介绍一下Redi...原创 2019-07-19 13:54:18 · 563 阅读 · 0 评论 -
MongoDB的使用
今天来学习一个新的数据库,叫做MongoDB数据库,我们先来了解一下MongoDB数据库的概念,再一起学习如何使用MongoDB数据库吧~1.MongoDB的概念MongoDB是专为可扩展性、高性能和高可用性而设计的数据库,MongoDB的库中由一个或多个collections组成,这里的collection相当于关系型数据库中的表;MongoDB中的记录是一个document文档,...原创 2019-07-19 14:20:15 · 139 阅读 · 0 评论