自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 收藏
  • 关注

原创 你真的懂递归 或者 写的好递归吗

一、什么是递归?1.递归是一种非常高效、简洁的编码技巧,一种应用非常广泛的算法,比如DFS深度优先搜索、前中后序二叉树遍历等都是使用递归。2.方法或函数调用自身的方式称为递归调用,调用称为递,返回称为归。3.基本上,所有的递归问题都可以用递推公式来表示,比如f(n) = f(n-1) + 1;f(n) = f(n-1) + f(n-2);f(n)=n*f(n-1);二、...

2019-10-10 11:00:05 539

原创 Python 中的单例模式

单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建...

2019-04-22 15:40:42 422

原创 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 3561

原创 Docker(6)----常用的 Docker Compose 配置项

常用的 Docker Compose 配置项与 Dockerfile 一样,编写 Docker Compose 的配置文件是掌握和使用好 Docker Compose 的前提。编写 Docker Compose 配置文件,其本质就是根据我们所设计的应用架构,对不同应用容器进行配置并加以组合。在这一节中,我们就来谈谈如何编写 Docker Compose 的配置文件,了解其中常见配置项的使用方法...

2018-11-27 11:31:57 906

原创 Docker(5) ---使用 Docker Compose 管理容器

通过之前的介绍,我们已经基本掌握了构建、运行容器的方法,但这还远远不够,由于 Docker 采用轻量级容器的设计,每个容器一般只运行一个软件,而目前绝大多数应用系统都绝不是一个软件所能组成的。虽然我们之前提到了容器间互相连接、交换数据的各种方法,通过这些方法足以搭建起完整的用于应用系统运行的容器群,但是这显然还不够,这个容器群的搭建需要执行太多命令,更重要的是需要考虑太多应用和容器间的依赖关系处理...

2018-11-26 11:45:39 1273

原创 Docker(4)----容器基础:重新认识Docker容器

我分别从 Linux Namespace 的隔离能力、Linux Cgroups 的限制能力,以及基于 rootfs 的文件系统三个角度,为你剖析了一个 Linux 容器的核心实现原理。备注:之所以要强调 Linux 容器,是因为比如 Docker on Mac,以及 WindowsDocker(Hyper-V 实现),实际上是基于虚拟化技术实现的,重介绍的 Linux 容器完全不同。而在...

2018-11-23 17:19:50 574

原创 从零学习Go (2)

Go 语言从发布 1.0 版本以来备受众多开发者关注并得到广泛使用,Go 语言的简单、高效、并发特性吸引了众多传统语言开发者的加入,而且人数越来越多。使用 Go 语言开发的开源项目非常多。早期的 Go 语言开源项目只是通过 Go 语言与传统项目进行C语言库绑定实现,例如 Qt、Sqlite 等;后期的很多项目都使用 Go 语言进行重新原生实现,这个过程相对于其他语言要简单一些,这也促成了大量使用...

2018-11-16 10:08:40 235

原创 从零学习go (1)

 Go语言简史对语言进行评估时,明白设计者的动机以及语言要解决的问题很重要。Go 语言出自 Ken Thompson 和 Rob Pike、Robert Griesemer 之手,他们都是计算机科学领域的重量级人物。在 20 世纪 70 年代,Ken Thompson 设计并实现了最初的 UNIX 操作系统,仅从这一点说,他对计算机科学的贡献怎么强调都不过分。他还与 Rob Pike ...

2018-11-15 11:38:14 282

原创 navicat链接阿里云mysql报80070007: SSH Tunnel: Server does not support diffie-hellman-group1-sha1 for keyex

 navicat 链接数据库使用navicat 的ssh通道连接数据库回遇到权限问题错误代码如下:80070007: SSH Tunnel: Server does not support diffie-hellman-group1-sha1 for keyexchange解决方案如下:1、进入 /etc/ssh/sshd_config 在最下面 加入下面代码KexAl...

2018-11-07 16:41:11 2710 2

原创 十大排序算法 python 实现

详细请看:https://github.com/wangguanfu/-Sorting-algorithm def sortTest(func, total=1000):    import random, copy, operator, math, time    arrList = [i for i in range(-math.floor(total / 2), math.cei...

2018-11-06 15:58:47 268

原创 python -- leetcode ---- 81.Search in Rotated Sorted Array II

-81.Search in Rotated Sorted Array II给定一个list,是由一个有序数组在某一枢纽处旋转得到的,并且其中可能含有重复元素,要求判断target是否在这个list中.虽然这个list经过旋转,但是还是可以用二分查找的思想,因为mid的左边或右边一定有一端是有序的.因此只需要在二分查找的时候对此进行判断就行了.另外本题可能有重复值,所以当left,mid和r...

2018-10-24 16:21:52 150

原创 LeetCode python----- 703.数据流中的第K大元素

寻找数组中的第K大的元素,多种解法以及分析遇到了一个很简单而有意思的问题,可以看出不同的算法策略对这个问题求解的优化过程。问题:寻找数组中的第K大的元素。最简单的想法是直接进行排序,算法复杂度是O(N*logN)。这么做很明显比较低效率,因为不要求别的信息只要计算出第K大的元素。当然,如果在某种情况下需要频繁访问第K大的元素就可以先进行一次排序在直接得出结果。第一种方式是这样,用选择...

2018-10-18 14:55:58 806

原创 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 541 1

原创 Go语言学习 --- 这里就够了

欢迎加入go语言学习  一起努力         来这里

2018-10-12 11:41:48 353

原创 Docker原理 ---- 深入了解容器镜像

我讲解了 Linux 容器的最基础的两种技术:Namespace 和 Cgroups。希望此时,你已经彻底理解了“容器的本质是一种特殊的进程”这个最重要的概念。而正如我前面所说的,Namespace 的作用是“隔离”,它让应用进程只能看到该 Namespace 内的“世界”;而 Cgroups 的作用是“限制”,它给这个“世界”围上了一圈看不见的墙。这么一折腾,进程就真的被“装”在了一个与世...

2018-09-14 19:47:00 1653 4

原创 docker原理 ---- 容器的隔离与限制

在上一篇文章中,我详细介绍了 Linux 容器中用来实现“隔离”的技术手段:Namespace。而通过这些讲解,你应该能够明白,Namespace 技术实际上修改了应用进程看待整个计算机“视图”,即它的“视线”被操作系统做了限制,只能“看到”某些指定的内容。但对于宿主机来说,这些被“隔离”了的进程跟其他进程并没有太大区别。说到这一点,相信你也能够知道我在上一篇文章最后给你留下的第一个思考题的答...

2018-09-12 11:41:12 9228

翻译 docker原理 ----- 白话容器基础之从进程说开去

白话容器基础之从进程说开去。容器技术的兴起源于 PaaS 技术的普及;Docker 公司发布的 Docker 项目具有里程碑式的意义;Docker 项目通过“容器镜像”,解决了应用打包这个根本性难题。我希望你能理解这样一个道理:容器本身没有价值,有价值的是“容器编排”。不过在此之前,你还需要搞清楚一个更为基础的问题:容器,到底是怎么一回事儿?我已经提到过,容器其实...

2018-09-11 15:26:17 1866 2

原创 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 6642

原创 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 835 1

原创 python itertools 功能详解

python模块itertools    提供了非常有用的用于操作迭代对象的函数。首先,我们看看itertools提供的几个“无限”迭代器:>>> import itertools>>> natuals = itertools.count(1)>>> forninnatuals:...print(n)...123......

2018-08-07 11:34:08 455

原创 可能是最全面的 Python 字符串拼接总结

在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅。加号连接第一种,通过+号的形式:>>> a, b = 'hello', ' world'>>> a + b'hello world'逗号连接第二种,通过,逗号的形式:>>> a, b = 'hello', ' world'>>> pr...

2018-07-07 14:43:51 754

原创 Python 实现京东自动登录领京豆

今天带大家进行模拟京东登录,并进行签到获取京豆,1000 个京豆 = 10 元,是不是一个发现了一个「发家致富」的好路子?废话不多说,下面开始正题。整体流程如下:京东自动签到流程1 模拟登录首先我们需要的就是模拟京东登录,只有登录了才能进行签到领京豆等操作。模拟登录其实就是通过 HTTP 的 POST 请求讲用户的登录信息发送给服务器进行认证的过程。1.1 登录数据分析登录过程表面上看着挺简单,我...

2018-07-05 09:24:31 22879 3

原创 看完这篇文章还不懂异步IO (asyncio) 协程?

python asyncio网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程。无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态。使用协程可以实现高效的并发任务。Python的在3.4中引入了协程的概念,可是这个还是以生成器对象为基础,3.5则确定了协程的语法。下面将简单介绍asyncio的使用。实现协程的不仅仅是asyncio...

2018-07-02 13:26:21 5493 2

原创 推荐4个爬虫抓包神器

爬虫的基本原理就是模拟客户端(可以是浏览器,也有可能是APP)向远程服务器发送 HTTP 请求,我们需要知道目标服务器的 HOST、URI、请求方法、请求参数、请求头、请求体。Web 网站通过 Chrome 浏览器可以找到这些信息。但是对于 APP 爬虫,就显得有些束手无策。这时候必须借用一些抓包工具来辅助我们分析APP背后的秘密。今天推荐4个HTTP代理工具通过抓包分析,帮助你还原APP背后的每...

2018-06-27 17:36:11 5031 1

转载 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 5518 1

原创 你想要的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 1328 3

原创 Python之 字符串格式化 (巧用 妙用)

方法一 % 格式符基本形式:%[(name)][flags][width].[precision]typecode(name)      可选,用于选择指定的key(与字典形式结合,选择指定的key,友情提醒,字典没有顺序的说法噢)flags          可选,可供选择的值有: + - 空格 0width         可选,占有宽度.precision   可选,小数点后保留的位数(小詹...

2018-05-30 13:20:07 1226

原创 Python-爬虫工程师-面试题总结

1、对__if__name__ == 'main'的理解陈述__name__是当前模块名,当模块被直接运行时模块名为_main_,也就是当前的模块,当模块被导入时,模块名就不是__main__,即代码将不会执行。2、python是如何进行内存管理的?a、对象的引用计数机制python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了...

2018-05-28 12:31:24 15524 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 246

原创 学习用 Python 编程时要避免的 3 个错误

为了让初学 Python 的程序员避免犯同样的错误,以下列出了我学习 Python 时犯的三种错误。这些错误要么是我长期以来经常犯的,要么是造成了需要几个小时解决的麻烦。-- Pete Savage这些错误会造成很麻烦的问题,需要数小时才能解决。当你做错事时,承认错误并不是一件容易的事,但是犯错是任何学习过程中的一部分,无论是学习走路,还是学习一种新的编程语言都是这样,比如学习 Python。为了...

2018-05-25 12:43:40 253

原创 Python中的协议 、鸭子类型 、 抽象基类 、混入类

篇文章探讨一下python中的几个概念:协议 、鸭子类型 、 抽象基类 、混入类。一、协议在python中,协议是一个或一组方法。例如,Python 的序列协议包含 len 和 getitem 两个方法, 上下文管理器协议包含 enter 和 exit 两个方法(前者参见文章 《一文读懂python可迭代对象、迭代器和生成器》,后者参见文章《python中的上下文管理器和你所不了解的with》),...

2018-05-25 10:18:55 1357

原创 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 994

原创 Python库大全,建议收藏留用!

学Python,想必大家都是从爬虫开始的吧。毕竟网上类似的资源很丰富,开源项目也非常多。Python学习网络爬虫主要分3个大的版块:抓取,分析,存储当我们在浏览器中输入一个url后回车,后台会发生什么?简单来说这段过程发生了以下四个步骤:查找域名对应的IP地址。向IP对应的服务器发送请求。服务器响应请求,发回网页内容。浏览器解析网页内容。那么学习爬虫需要掌握哪些库呢?通用:urllib -网络库(...

2018-05-16 19:17:47 352

原创 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 1275

原创 Python高级:了解Python ABC(抽象基类)及 应用场景

 ABC,Abstract Base Class(抽象基类),主要定义了基本类和最基本的抽象方法,可以为子类定义共有的API,不需要具体实现。相当于是Java中的接口或者是抽象类。    抽象基类可以不实现具体的方法(当然也可以实现,只不过子类如果想调用抽象基类中定义的方法需要使用super())而是将其留给派生类实现。    抽象基类提供了逻辑和实现解耦的能力,即在不同的模块中通过抽象基类来调用...

2018-05-11 09:43:12 13265

原创 你真的理解Python中MRO算法吗?

【前言】MRO(Method Resolution Order):方法解析顺序。Python语言包含了很多优秀的特性,其中多重继承就是其中之一,但是多重继承会引发很多问题,比如二义性,Python中一切皆引用,这使得他不会像C++一样使用虚基类处理基类对象重复的问题,但是如果父类存在同名函数的时候还是会产生二义性,Python中处理这种问题的方法就是MRO。【历史中的MRO】如果不想了解历史,只想...

2018-05-11 09:40:30 3391 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 4382 1

原创 python 将数据库的 utc时间转换成本地时间

最近在项目中遇到一个问题:数据库中存放的时间为UTC时间,但是现在要求都出来显示的时间为本地时间,由于自己之前很少接触Python,对Python中的datetime操作很不熟悉,在网上查阅了相关资料后终于成功解决了这个问题,方法如下:[python] view plain copyfrom dateutil import tz  from datetime import datetime    ...

2018-05-08 17:59:25 3572 1

原创 Python 迭代器 深入理解 与应用示例

本篇文章简单谈谈可迭代对象,迭代器和生成器之间的关系。三者简要关系图可迭代对象与迭代器刚开始我认为这两者是等同的,但后来发现并不是这样;下面直接抛出结论:1)可迭代对象包含迭代器。2)如果一个对象拥有__iter__方法,其是可迭代对象;如果一个对象拥有next方法,其是迭代器。3)定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__和next方法。你也许会问,结论3...

2018-05-08 09:27:24 6892 1

转载 Python系列之——手把手教你玩Pycharm

刚入门python的时候,一直觉得用哪个编辑器并没有差别,然而前两天发了一篇文章【Python系列之——如何每天跟女朋友说晚安~】,跟几个粉丝小伙伴在群里一起讨论了大半个小时,遇到了这样那样的一些bug……本来这也没啥,用哪个编辑器跟代码有bug并不存在相关性,然而遇到了一个编码问题,interesting的事情是,同样的程序在命令窗口可以执行,而在小编最开始使用的编译器(避免争议引起编辑器大战,...

2018-05-07 20:24:49 1228

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除