python
文章平均质量分 76
hurt--
这个作者很懒,什么都没留下…
展开
-
Python 中的单例模式
单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建...原创 2019-04-22 15:40:42 · 441 阅读 · 0 评论 -
Python中的协议 、鸭子类型 、 抽象基类 、混入类
篇文章探讨一下python中的几个概念:协议 、鸭子类型 、 抽象基类 、混入类。一、协议在python中,协议是一个或一组方法。例如,Python 的序列协议包含 len 和 getitem 两个方法, 上下文管理器协议包含 enter 和 exit 两个方法(前者参见文章 《一文读懂python可迭代对象、迭代器和生成器》,后者参见文章《python中的上下文管理器和你所不了解的with》),...原创 2018-05-25 10:18:55 · 1367 阅读 · 0 评论 -
Python 迭代器 深入理解 与应用示例
本篇文章简单谈谈可迭代对象,迭代器和生成器之间的关系。三者简要关系图可迭代对象与迭代器刚开始我认为这两者是等同的,但后来发现并不是这样;下面直接抛出结论:1)可迭代对象包含迭代器。2)如果一个对象拥有__iter__方法,其是可迭代对象;如果一个对象拥有next方法,其是迭代器。3)定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__和next方法。你也许会问,结论3...原创 2018-05-08 09:27:24 · 6914 阅读 · 1 评论 -
python 生成csv 并压缩成zip 上传阿里 oss
import zipfile, csv, osimport oss2 def zip_ya(startdir, file_news): # startdir = "./media" # 要压缩的文件夹路径 # file_news = "MMC_" + str(datetime.now()) + ".zip" # 压缩后文件夹的名字 z = zipfile.ZipFile...原创 2018-05-07 16:58:06 · 1935 阅读 · 1 评论 -
Python高级:了解Python ABC(抽象基类)及 应用场景
ABC,Abstract Base Class(抽象基类),主要定义了基本类和最基本的抽象方法,可以为子类定义共有的API,不需要具体实现。相当于是Java中的接口或者是抽象类。 抽象基类可以不实现具体的方法(当然也可以实现,只不过子类如果想调用抽象基类中定义的方法需要使用super())而是将其留给派生类实现。 抽象基类提供了逻辑和实现解耦的能力,即在不同的模块中通过抽象基类来调用...原创 2018-05-11 09:43:12 · 14643 阅读 · 0 评论 -
你真的理解Python中MRO算法吗?
【前言】MRO(Method Resolution Order):方法解析顺序。Python语言包含了很多优秀的特性,其中多重继承就是其中之一,但是多重继承会引发很多问题,比如二义性,Python中一切皆引用,这使得他不会像C++一样使用虚基类处理基类对象重复的问题,但是如果父类存在同名函数的时候还是会产生二义性,Python中处理这种问题的方法就是MRO。【历史中的MRO】如果不想了解历史,只想...原创 2018-05-11 09:40:30 · 3420 阅读 · 1 评论 -
python 将数据库的 utc时间转换成本地时间
最近在项目中遇到一个问题:数据库中存放的时间为UTC时间,但是现在要求都出来显示的时间为本地时间,由于自己之前很少接触Python,对Python中的datetime操作很不熟悉,在网上查阅了相关资料后终于成功解决了这个问题,方法如下:[python] view plain copyfrom dateutil import tz from datetime import datetime ...原创 2018-05-08 17:59:25 · 3588 阅读 · 1 评论 -
python写入csv文件中文乱码解决方案
python写入csv文件中文乱码解决方案今天修改程序,需要写入csv文件,发现中文会乱码,后来查了下,可以设置文件写入属性后,就可以解决:import csvimport codecslist=['a101','b101']sumlist=[]for str in list: templist=[] templist.append('a') templist.append('b...原创 2018-05-08 20:45:52 · 4427 阅读 · 1 评论 -
机器学习/深度学习入门资料汇总
机器学习/深度学习入门资料汇总经常被同学和朋友询问机器学习或深度学习入门,有哪些不错的参考资料。老实讲,这个问题在网上随便一搜就是一大把的答案。我自己在最开始的时候也有同样的困惑,同样在搜索引擎和论坛里翻找答案。但大多数答案并不怎么让人满意:搜索结果要么星稀零散,只见树木不见森林;要么过于详尽,让人无从下手(很多资料作者自己都没看过)。在这篇文章里,我把自己在学习过程中的参考资料进行了梳理。一方面...原创 2018-04-19 14:16:50 · 375 阅读 · 1 评论 -
惊艳!Python3 的这几个特性
距离官方放弃Python2的时间越来越近,很多项目也逐渐的开始放弃对Python2的支持,比如Django,IPython这些框架就走在了最前列,Python2完成了它的使命,在人工智能的新时代,Python2带来的问题不断地困扰开发者,比如字符编码问题、性能问题、代码维护问题等等。而 Python3 才是未来真正适合移动互联网、人工智能的一门语言。发现很多很多小伙伴依然停留在Python2的脚步...原创 2018-04-23 16:30:29 · 2475 阅读 · 0 评论 -
Pandas-Series知识点总结
1、Series创建根据listpandas有两种主要的数据结构,第一种是Series,是一种类似于一维数组的数据结构,它由一组数据以及一组与之相关的数据标签组成。我们可以直接根据list来生成一个Series。obj = pd.Series([4,7,-5,3])obj#输出0 41 72 -53 3dtype: int64可以通过index和values属...原创 2018-04-13 17:49:05 · 554 阅读 · 1 评论 -
轻松入门 学习 pandas
官方 10 分钟入门文档(http://pandas.pydata.org/pandas-docs/stable/10min.html)这是 pandas 的简短介绍,主要面向新用户。你可以看到更复杂的文档Cookbook(http://pandas.pydata.org/pandas-docs/stable/cookbook.html#cookbook)[toc]Environmentpanda...原创 2018-03-29 11:27:10 · 318 阅读 · 0 评论 -
使用 Django Q F 对象构建复杂的查询
from django.db import modelsclass Question(models.Model): text = models.CharField(max_length=200) pub_date = models.DateTimeField('published_date') def __unicode__(self): return...原创 2018-03-27 19:41:20 · 2009 阅读 · 0 评论 -
《The Zen of Python》 python之禅
《Python之禅》是Tim Peters 为 Python 语言总结的 20 条软件开发哲学,在 Python 交互式命令行中可以输入 import this 打印出来,中文翻译:优美胜于丑陋明了胜于隐晦简洁胜于复杂复杂胜于混乱扁平胜于嵌套宽松胜于紧凑可读性很重要即便是特例,也不可违背这些规则虽然现实往往不那么完美但是不应该放过任何异常除非你确定需要如此如果存在多种可能,不要猜测肯定有一种通常也...原创 2018-04-09 17:55:26 · 1612 阅读 · 1 评论 -
Numpy基础知识点汇总
1、概述Numpy是高性能科学计算和数据分析的基础包,它的部分功能如下:1)ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。2)对整组数据进行快速运算的标准数学函数3)用于读写磁盘数据的工具以及用于操作内存映射文件的工具。2、ndarray的创建这一节,我们主要关注ndarray数组的创建,我们主要有以下几种方式:数组转换创建数组的最简单的方法就是使用array函数,...原创 2018-04-14 11:34:23 · 594 阅读 · 1 评论 -
学习用 Python 编程时要避免的 3 个错误
为了让初学 Python 的程序员避免犯同样的错误,以下列出了我学习 Python 时犯的三种错误。这些错误要么是我长期以来经常犯的,要么是造成了需要几个小时解决的麻烦。-- Pete Savage这些错误会造成很麻烦的问题,需要数小时才能解决。当你做错事时,承认错误并不是一件容易的事,但是犯错是任何学习过程中的一部分,无论是学习走路,还是学习一种新的编程语言都是这样,比如学习 Python。为了...原创 2018-05-25 12:43:40 · 260 阅读 · 0 评论 -
python之sys模块 与 OS模块
sys模块常见函数 可以通过dir()方法查看模块中可用的方法. 结果如下, 很多我都没有用过, 所以只是简单介绍几个自己用过的方法.$ pythonPython 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2Type "help", "copyright", "credits" or "license" for mo...原创 2018-05-22 20:52:55 · 1000 阅读 · 0 评论 -
python中__get__,__getattr__,__getattribute__的区别 深入了解及应用
__get__,__getattr__和__getattribute都是访问属性的方法,但不太相同。 object.__getattr__(self, name) 当一般位置找不到attribute的时候,会调用getattr,返回一个值或AttributeError异常。 object.__getattribute__(self, name) 无条件被调用,通过实例访问属性。如果class中定义...原创 2018-05-16 17:42:06 · 1305 阅读 · 0 评论 -
django、flask和tornado的部署对比:
今天我们来讨论一下、django、flask和tornado的部署对比:1. 概述在python的web开发框架中,目前使用量最高的几个是django、flask和tornado, 经常会有人拿这几个对比,相信大家的初步印象应该是 django大而全、flask小而精、tornado性能高。tornado性能比django和flask高很多是因为tornado在底层io处理机制上和dj...原创 2019-01-26 10:20:24 · 3587 阅读 · 0 评论 -
python 链表反转 :
单链表的反转可以使用循环,也可以使用递归的方式1.循环反转单链表循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。 2.递归实现单链表反转class ListNode: def __init__(self,x): self.val=x; self.next=Non...原创 2018-10-13 09:59:01 · 556 阅读 · 1 评论 -
django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段的使用
创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三中对象。这三个field有着相同的参数auto_now和auto_now_add,表面上看起来很easy,但实际使用中很容易出错,下面是一些注意点。DateTimeField.auto_now这个参...原创 2018-08-09 16:54:52 · 6741 阅读 · 0 评论 -
django 1.8 官方文档翻译:6-3 Django异常
Django异常DJango会抛出一些它自己的异常,以及Python的标准异常。Django核心异常Django核心异常类定义在django.core.exceptions中。ObjectDoesNotExist_exception _ObjectDoesNotExist[source]DoesNotExist异常的基类;对ObjectDoesNotExist的try/ex...原创 2018-08-09 16:48:43 · 858 阅读 · 1 评论 -
可能是最全面的 Python 字符串拼接总结
在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅。加号连接第一种,通过+号的形式:>>> a, b = 'hello', ' world'>>> a + b'hello world'逗号连接第二种,通过,逗号的形式:>>> a, b = 'hello', ' world'>>> pr...原创 2018-07-07 14:43:51 · 766 阅读 · 0 评论 -
Python 实现京东自动登录领京豆
今天带大家进行模拟京东登录,并进行签到获取京豆,1000 个京豆 = 10 元,是不是一个发现了一个「发家致富」的好路子?废话不多说,下面开始正题。整体流程如下:京东自动签到流程1 模拟登录首先我们需要的就是模拟京东登录,只有登录了才能进行签到领京豆等操作。模拟登录其实就是通过 HTTP 的 POST 请求讲用户的登录信息发送给服务器进行认证的过程。1.1 登录数据分析登录过程表面上看着挺简单,我...原创 2018-07-05 09:24:31 · 22985 阅读 · 3 评论 -
推荐4个爬虫抓包神器
爬虫的基本原理就是模拟客户端(可以是浏览器,也有可能是APP)向远程服务器发送 HTTP 请求,我们需要知道目标服务器的 HOST、URI、请求方法、请求参数、请求头、请求体。Web 网站通过 Chrome 浏览器可以找到这些信息。但是对于 APP 爬虫,就显得有些束手无策。这时候必须借用一些抓包工具来辅助我们分析APP背后的秘密。今天推荐4个HTTP代理工具通过抓包分析,帮助你还原APP背后的每...原创 2018-06-27 17:36:11 · 5069 阅读 · 1 评论 -
看完这篇文章还不懂异步IO (asyncio) 协程?
python asyncio网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程。无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态。使用协程可以实现高效的并发任务。Python的在3.4中引入了协程的概念,可是这个还是以生成器对象为基础,3.5则确定了协程的语法。下面将简单介绍asyncio的使用。实现协程的不仅仅是asyncio...原创 2018-07-02 13:26:21 · 5540 阅读 · 2 评论 -
Django+Linux+Uwsgi+Nginx项目部署文档
Django+Linux+Uwsgi+Nginx项目部署文档WSGI在生产环境中使用WSGI作为python web的服务器WSGI:全拼为Python Web服务器网关接口,Python Web服务器网关接口,是项目默认会生成一个wsgi.py文件,确定了设置模块,uWSGI实现了WSGI的所有接口,是一个快速,自我修复,开发人员和系统管理员友好的服务器,C语言编写,效率高Nginx使用ngin...转载 2018-06-27 09:29:32 · 5535 阅读 · 1 评论 -
Python之 字符串格式化 (巧用 妙用)
方法一 % 格式符基本形式:%[(name)][flags][width].[precision]typecode(name) 可选,用于选择指定的key(与字典形式结合,选择指定的key,友情提醒,字典没有顺序的说法噢)flags 可选,可供选择的值有: + - 空格 0width 可选,占有宽度.precision 可选,小数点后保留的位数(小詹...原创 2018-05-30 13:20:07 · 1242 阅读 · 0 评论 -
你想要的Python面试都在这里了【315+道题】
第一部分 Python基础篇(80题)1、为什么学习Python?2、通过什么途径学习的Python?3、Python和Java、PHP、C、C#、C++等其他语言的对比?4、简述解释型和编译型编程语言?5、Python解释器种类以及特点?6、位和字节的关系?7、b、B、KB、MB、GB 的关系?8、请至少列举5个 PEP8 规范(越多越好)。9、通过代码实现如下转换:二进制转换成十进制:v = ...原创 2018-06-04 15:49:47 · 1339 阅读 · 3 评论 -
Python-爬虫工程师-面试题总结
1、对__if__name__ == 'main'的理解陈述__name__是当前模块名,当模块被直接运行时模块名为_main_,也就是当前的模块,当模块被导入时,模块名就不是__main__,即代码将不会执行。2、python是如何进行内存管理的?a、对象的引用计数机制python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了...原创 2018-05-28 12:31:24 · 15563 阅读 · 1 评论 -
如何反转字符串
按单词反转字符串是一道很常见的面试题。在Python中实现起来非常简单。def reverse_string_by_word(s): lst = s.split() # split by blank space by default return ' '.join(lst[::-1])s = 'Power of Love'print reverse_string_by_word(s)...原创 2018-05-28 12:30:37 · 249 阅读 · 0 评论 -
Python库大全,建议收藏留用!
学Python,想必大家都是从爬虫开始的吧。毕竟网上类似的资源很丰富,开源项目也非常多。Python学习网络爬虫主要分3个大的版块:抓取,分析,存储当我们在浏览器中输入一个url后回车,后台会发生什么?简单来说这段过程发生了以下四个步骤:查找域名对应的IP地址。向IP对应的服务器发送请求。服务器响应请求,发回网页内容。浏览器解析网页内容。那么学习爬虫需要掌握哪些库呢?通用:urllib -网络库(...原创 2018-05-16 19:17:47 · 356 阅读 · 0 评论 -
入门Python数据挖掘与机器学习(附代码、实例)
本文包含了五个知识点:1. 数据挖掘与机器学习技术简介 2. Python数据预处理实战 3. 常见分类算法介绍 4. 对鸢尾花进行分类案例实战 5. 分类算法的选择思路与技巧一、数据挖掘与机器学习技术简介什么是数据挖掘?数据挖掘指的是对现有的一些数据进行相应的处理和分析,最终得到数据与数据之间深层次关系的一种技术。例如在对超市货品进行摆放时,牛奶到底是和面包摆放在一起销量更高,还是和其他...原创 2018-04-08 18:53:53 · 5327 阅读 · 7 评论 -
一文读懂Python中的异常处理
异常处理在任何一门编程语言里都是值得关注的一个话题,良好的异常处理可以让你的程序更加健壮,清晰的错误信息更能帮助你快速修复问题。在Python中,和不部分高级语言一样,使用了try/except/finally语句块来处理异常,如果你有其他编程语言的经验,实践起来并不难。异常处理语句 try...excpet...finally实例代码defdiv(a, b):try:print(a / b)ex...原创 2018-04-08 14:00:36 · 1133 阅读 · 1 评论 -
Python class 抽象类 与 元类 详解
抽象基类要定义抽象基类,需要使用abc模块。该模块定义了一个元类(ABCMeta)和一组装饰器@abstractmethod,@abstractproperty。可以按如下方式使用from abc import ABCMeta,abstractmethod,abstractpropertyclass People: __metaclass__ = ABCMeta @abstr...原创 2018-02-27 13:38:42 · 1592 阅读 · 0 评论 -
Python装饰器使用示例 及 实际应用例子 与应用
这篇文章主要介绍了Python装饰器使用示例及实际应用例子,本文给出了斐波拉契数列、注册回调函数、mysql封装、线程异步等实际使用示例,需要的朋友可以参考下测试1deco运行,但myfunc并没有运行复制代码代码如下:def deco(func): print 'before func' return funcdef myfunc(): print 'myfunc() call...原创 2018-02-27 13:37:33 · 2142 阅读 · 0 评论 -
Tornado HTTP服务器的基本流程Tornado 底层I/O的内部实现
本小节介绍Tornado HTTP服务器的基本流程,分别分析httpserver, ioloop, iostream模块的代码来剖析Tornado底层I/O的内部实现。httpserver.py中给出了一个简单的http服务器的demo,代码如下所示:01from tornado import httpserver02from tornado import ioloop03 04def hand...原创 2018-02-12 16:28:58 · 575 阅读 · 0 评论 -
python之强大的日志模块--logging
1.简单的将日志打印到屏幕 import logginglogging.debug('This is debug message')logging.info('This is info message')logging.warning('This is warning message') 屏幕上打印:WARNING:root:This is warning message默认情况下,logging...原创 2018-02-26 16:08:04 · 217 阅读 · 0 评论 -
Python协程深入理解 | Python基础教程
从语法上来看,协程和生成器类似,都是定义体中包含yield关键字的函数。yield在协程中的用法:在协程中yield通常出现在表达式的右边 ,例如:datum = yield,可以产出值,也可以不产出–如果yield关键字后面没有表达式,那么生成器产出None.协程可能从调用方接受数据,调用方是通过send(datum)的方式把数据提供给协程使用,而不是next(…)函数,通常调用原创 2018-02-05 16:54:23 · 413 阅读 · 0 评论 -
Django REST framework的技巧—— 2.serializer
serializer只做一件事情,json化model对象,所以这一部分相当简单讲解拿基本的user,group为例子首先一个关联的modelclass UserProfile(TimeStampedModel): user = models.OneToOneField(User, unique=True, db_index=True, relat原创 2018-01-20 16:37:29 · 1143 阅读 · 0 评论