自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

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

2019-10-10 11:00:05 94 0

原创 Python 中的单例模式

单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读...

2019-04-22 15:40:42 107 0

原创 django、flask和tornado的部署对比:

今天我们来讨论一下、django、flask和tornado的部署对比: 1. 概述 在python的web开发框架中,目前使用量最高的几个是django、flask和tornado, 经常会有人拿这几个对比,相信大家的初步印象应该是 django大而全、flask小而精、tornado性能高...

2019-01-26 10:20:24 1255 0

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

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

2018-11-27 11:31:57 357 0

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

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

2018-11-26 11:45:39 457 0

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

我分别从 Linux Namespace 的隔离能力、Linux Cgroups 的限制能力,以及基于 rootfs 的文件系统三个角度,为你剖析了一个 Linux 容器的核心实现原理。 备注:之所以要强调 Linux 容器,是因为比如 Docker on Mac,以及 WindowsDocke...

2018-11-23 17:19:50 232 0

原创 从零学习Go (2)

Go 语言从发布 1.0 版本以来备受众多开发者关注并得到广泛使用,Go 语言的简单、高效、并发特性吸引了众多传统语言开发者的加入,而且人数越来越多。 使用 Go 语言开发的开源项目非常多。早期的 Go 语言开源项目只是通过 Go 语言与传统项目进行C语言库绑定实现,例如 Qt、Sqlite 等;...

2018-11-16 10:08:40 129 0

原创 从零学习go (1)

  Go语言简史 对语言进行评估时,明白设计者的动机以及语言要解决的问题很重要。Go 语言出自 Ken Thompson 和 Rob Pike、Robert Griesemer 之手,他们都是计算机科学领域的重量级人物。 在 20 世纪 70 年代,Ken Thompson 设计并实现了最初...

2018-11-15 11:38:14 157 0

原创 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 解决...

2018-11-07 16:41:11 951 0

原创 十大排序算法 python 实现

详细请看:https://github.com/wangguanfu/-Sorting-algorithm   def sortTest(func, total=1000):     import random, copy, operator, math, time     arrList =...

2018-11-06 15:58:47 150 0

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

-81.Search in Rotated Sorted Array II 给定一个list,是由一个有序数组在某一枢纽处旋转得到的,并且其中可能含有重复元素,要求判断target是否在这个list中. 虽然这个list经过旋转,但是还是可以用二分查找的思想,因为mid的左边或右边一定有一端是...

2018-10-24 16:21:52 56 0

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

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

2018-10-18 14:55:58 527 0

原创 python 链表反转 :

单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。        2.递归实现单链表反转 class ListNode:     def __in...

2018-10-13 09:59:01 243 1

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

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

2018-10-12 11:41:48 222 0

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

我讲解了 Linux 容器的 最基础的两种技术:Namespace 和 Cgroups。希望此时,你已经彻底理解了“容器的本质是一种特殊的进程”这个最重要的概念。 而正如我前面所说的,Namespace 的作用是“隔离”,它让应用进程只能看到该 Namespace 内的“世界”;而 Cgroup...

2018-09-14 19:47:00 497 3

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

在上一篇文章中,我详细介绍了 Linux 容器中用来实现“隔离”的技术手段:Namespace。而通过这些讲解,你应该能够明白,Namespace 技术实际上修改了应用进程看待整个计算机“视图”,即它的“视线”被操作系统做了限制,只能“看到”某些指定的内容。但对于宿主机来说,这些被“隔离”了的进程...

2018-09-12 11:41:12 2865 0

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

白话容器基础之从进程说开去。 容器技术的兴起源于 PaaS 技术的普及; Docker 公司发布的 Docker 项目具有里程碑式的意义; Docker 项目通过“容器镜像”,解决了应用打包这个根本性难题。 我希望你能理解这样一个道理: 容器本身没有价值,有价值的是“容器编排”。 不过...

2018-09-11 15:26:17 1118 1

原创 django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段的使用

创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三中对象。这三个field有着相同的参数auto_now和auto_now_add,表面上看起来很easy...

2018-08-09 16:54:52 3201 0

原创 django 1.8 官方文档翻译:6-3 Django异常

Django异常 DJango会抛出一些它自己的异常,以及Python的标准异常。 Django核心异常 Django核心异常类定义在django.core.exceptions中。 ObjectDoesNotExist _exception _ObjectDoesNotExist[so...

2018-08-09 16:48:43 618 1

原创 python itertools 功能详解

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

2018-08-07 11:34:08 179 0

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

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

2018-07-07 14:43:51 559 0

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

今天带大家进行模拟京东登录,并进行签到获取京豆,1000 个京豆 = 10 元,是不是一个发现了一个「发家致富」的好路子?废话不多说,下面开始正题。整体流程如下:京东自动签到流程1 模拟登录首先我们需要的就是模拟京东登录,只有登录了才能进行签到领京豆等操作。模拟登录其实就是通过 HTTP 的 PO...

2018-07-05 09:24:31 8554 2

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

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

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

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

爬虫的基本原理就是模拟客户端(可以是浏览器,也有可能是APP)向远程服务器发送 HTTP 请求,我们需要知道目标服务器的 HOST、URI、请求方法、请求参数、请求头、请求体。Web 网站通过 Chrome 浏览器可以找到这些信息。但是对于 APP 爬虫,就显得有些束手无策。这时候必须借用一些抓包...

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

转载 Django+Linux+Uwsgi+Nginx项目部署文档

Django+Linux+Uwsgi+Nginx项目部署文档WSGI在生产环境中使用WSGI作为python web的服务器WSGI:全拼为Python Web服务器网关接口,Python Web服务器网关接口,是项目默认会生成一个wsgi.py文件,确定了设置模块,uWSGI实现了WSGI的所有...

2018-06-27 09:29:32 4534 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 的关系?...

2018-06-04 15:49:47 1197 3

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

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

2018-05-30 13:20:07 748 0

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

1、对__if__name__ == 'main'的理解陈述__name__是当前模块名,当模块被直接运行时模块名为_main_,也就是当前的模块,当模块被导入时,模块名就不是__main__,即代码将不会执行。2、python是如何进行内存管理的?a、对象的引用计数机制pyt...

2018-05-28 12:31:24 11119 1

原创 如何反转字符串

按单词反转字符串是一道很常见的面试题。在Python中实现起来非常简单。def reverse_string_by_word(s):    lst = s.split()  # split by blank space by default    return ' '.join...

2018-05-28 12:30:37 162 0

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

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

2018-05-25 12:43:40 114 0

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

篇文章探讨一下python中的几个概念:协议 、鸭子类型 、 抽象基类 、混入类。一、协议在python中,协议是一个或一组方法。例如,Python 的序列协议包含 len 和 getitem 两个方法, 上下文管理器协议包含 enter 和 exit 两个方法(前者参见文章 《一文读懂pytho...

2018-05-25 10:18:55 930 0

原创 python之sys模块 与 OS模块

sys模块常见函数 可以通过dir()方法查看模块中可用的方法. 结果如下, 很多我都没有用过, 所以只是简单介绍几个自己用过的方法.$ python Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type...

2018-05-22 20:52:55 594 0

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

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

2018-05-16 19:17:47 242 0

原创 python中__get__,__getattr__,__getattribute__的区别 深入了解及应用

__get__,__getattr__和__getattribute都是访问属性的方法,但不太相同。 object.__getattr__(self, name) 当一般位置找不到attribute的时候,会调用getattr,返回一个值或AttributeError异常。 object.__ge...

2018-05-16 17:42:06 885 0

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

 ABC,Abstract Base Class(抽象基类),主要定义了基本类和最基本的抽象方法,可以为子类定义共有的API,不需要具体实现。相当于是Java中的接口或者是抽象类。    抽象基类可以不实现具体的方法(当然也可以实现,只不过子类如果想调用抽象基类中定义的方法需要使用super())...

2018-05-11 09:43:12 3007 0

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

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

2018-05-11 09:40:30 1623 1

原创 python写入csv文件中文乱码解决方案

python写入csv文件中文乱码解决方案今天修改程序,需要写入csv文件,发现中文会乱码,后来查了下,可以设置文件写入属性后,就可以解决:import csvimport codecslist=['a101','b101']sumlist=[]for st...

2018-05-08 20:45:52 2407 1

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

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

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

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

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

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

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

刚入门python的时候,一直觉得用哪个编辑器并没有差别,然而前两天发了一篇文章【Python系列之——如何每天跟女朋友说晚安~】,跟几个粉丝小伙伴在群里一起讨论了大半个小时,遇到了这样那样的一些bug……本来这也没啥,用哪个编辑器跟代码有bug并不存在相关性,然而遇到了一个编码问题,intere...

2018-05-07 20:24:49 786 0

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