自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 Python3进阶—多进程【全】

文章目录一、多进程模块multiprocessing1.1 multiprocessing.Process()1.2 join进程阻塞1.3 daemon守护进程二、进程间同步2.1 互斥锁Lock()2.2 递归锁RLock()三、进程间通信3.1 队列(推荐使用)3.2 队列的应用-生产者与消费者模式3.3 管道参考博文 https://www.cnblogs.com/jiangfan95/...

2020-04-23 15:21:39 415

原创 【Python3】常用方法封装(2)— 文件目录相关(全)

文章目录1. os.path相关方法介绍1. os.path相关方法介绍path = __file__ # 当前文件路径(含文件名,有可能是相对路径,这取决于你在哪里运行该文件)# 返回绝对路径os.path.abspath(path) # 返回文件名os.path.basename(path) # 返回list(多个路径)中,所有path共有的最长的路径,该方法不建议使用,实...

2020-04-16 12:15:21 348

原创 【Python3】常用方法封装(1)

1. 时间相关操作import timeimport datetimedef now_datetime(_format="%Y-%m-%d %H:%M:%S") -> str: """ 获取当前日期时间 :param _format: 日期时间格式,默认:年-月-日 时:分:秒 :return: 当前日期时间 """ return t...

2020-04-15 17:25:23 429

原创 【Python】深度剖析实例方法、静态方法、类方法、属性方法

文章目录前言一、实例方法1. 定义方式2. 参数列表3. 类中的交互4. 调用方式5. 内存分配二、静态方法1. 定义方式2. 参数列表3. 类中的交互4. 调用方式5. 内存分配三、类方法1. 定义方式2. 参数列表3. 类中的交互4. 调用方式5. 内存分配四、属性方法1. 定义方式2. 参数列表3. 类中的交互4. 调用方式5. 内存分配总结前言在python的面向对象编程中,经常用到实例方法、静态方法、类方法、属性方法,面试也经常会问到,属于python进阶必须掌握的一个知识点,下面将从这四种方

2020-10-16 15:17:36 325

原创 【Python】简述Python的垃圾回收机制

文章目录一、引用计数二、标记清除三、分代回收参考文章Python的垃圾回收机制主要是以引用计数为主,标记清除和分代回收为辅。一、引用计数每个对象维护着一个ob_ref变量,用来统计当前对象被引用的次数,也就是用来追踪到底有多少个引用指向了这个对象。当发生以下4种情况时,对象的引用计数加1。对象被创建,如 a = 1对象被引用,如 b = a对象被当做参数传入一个函数中,如func(a)对象被当做元素存储在容器中时,如li = [a, 2, 3]与上述情况相对应,当出现以下4种情况时,对

2020-08-03 20:07:42 469

原创 【每天一道算法题12】用栈实现队列

题目描述用两个栈实现一个队列。并实现队列的在尾部添加元素方法和删除头部方法。分析使用两个栈,一个用于添加元素,一个用于删除元素class CQueue { private Stack<Integer> stack1; # 用于添加元素 private Stack<Integer> stack2; # 用于删除元素 public CQueue() { stack1 = new Stack<>();

2020-06-30 10:16:55 245

原创 【每天一道算法题11】合并区间

题目描述给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间解法:先排序后合并class Solution: def merge(self, intervals: Li

2020-06-29 16:46:12 251

原创 【面试】全面掌握HTTP协议(持续更新中)

文章目录0. 写在前面1. 基础知识1.1 什么是HTTP?1.2 HTTP请求方法有哪些?1.2.1 GET1.2.2 POST1.2.3 HEAD1.2.4 OPTIONS1.2.5 PUT1.2.6 DELETE1.2.7 TRACE1.2.8 CONNECT1.3 HTTP1.0、HTTP1.1、HTTP2.0、HTTPS的区别?1.3.1 HTTP1.01.3.2 HTTP1.11.3.3 HTTP1.1和HTTP1.0的区别1.3.4 HTTP2.0和HTTP1.x的区别1.3.5 HTTPS1

2020-06-17 17:22:10 404

原创 【Python】【二叉树】判断两个二叉树是否相同

题目描述相同二叉树的定义:给定两个二叉树,如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。编写一个函数来判断两个二叉树是否相同,相同返回True否则返回False。解法一:使用递归求解# 树的节点类class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Nonedef isSameTree(p: TreeNode,

2020-05-21 10:40:29 1210

原创 【Python】二叉树的广度优先搜索和深度优先搜索

文章目录1. 什么是二叉树2. 本文用到的二叉树例子3. 什么是广度优先搜索(BFS)4. 什么是深度优先搜索(DFS)5. 使用队列实现BFS6. 使用栈实现DFS7. 使用递归实现DFS1. 什么是二叉树二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。2. 本文用到的二叉树例子 1 / \ 2 3 / \ / \4

2020-05-19 20:39:09 998

原创 【Django】静态文件详解

文章目录1. 静态文件相关配置2. 模板中引用静态文件本人使用的Django2.2版本,以下内容对其他版本可能不适用。1. 静态文件相关配置文件配置:MyProject/MyProject/settings.py注:这里的MyProject是指你创建项目名称(django-admin startproject MyProject)DEBUG = True# 是否开启调试模式,默认为True,表示开启调试模式,当访问出错时网页上可以显示详细的错误信息。# 这个配置也会影响到静态文件的读取。B

2020-05-15 15:31:10 338 1

原创 【每天一道算法题10】移动0元素到末尾

题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]要求:只能在原有数组上进行操作,不能新建额外的数组。分析这一题的难点有两个:1.结果要保持非0元素的相对顺序2.不能新建额外的数组解法一:快慢指针def solution(nums): n = len(nums) # 定义慢指针初始索引 slow_index = 0 for i in

2020-05-14 21:47:26 464

原创 【每天一道算法题9】【Python】找零钱问题

题目描述给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例:coins = [1, 2, 5]amount = 100返回 20coins = [1, 2, 5]amount = 103返回 22解法一:动态规划(自底向上)分析:假设 coins = [coi...

2020-04-22 12:10:41 3198 1

原创 【每天一道算法题8】【Python】求二叉树的最大深度

题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。示例:给定二叉树:     5   /   \  2     26  /   /   \35   4    1返回它的最大深度 3 。节点类:class TreeNode: def __init__(val): self.val = val ...

2020-04-20 11:58:54 716

原创 【每天一道算法题7】【Python】合并两个有序链表

题目描述将两个升序链表ListNode1、ListNode2合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。节点类:class ListNode: def __init__(self, x): self.val = x self.next = None示例:输入:1->2->4, 1->3->...

2020-04-19 16:24:45 376

原创 【Python】【自动化测试】APP冷启动性能

依赖:Python3、adb命令手机上已安装待测应用,并用USB线连接到电脑,并开启调试模式,用adb devices检查可以看到相应设备。效果:第1次测试,冷启动耗时:394ms第2次测试,冷启动耗时:396ms第3次测试,冷启动耗时:377ms第4次测试,冷启动耗时:398ms第5次测试,冷启动耗时:385ms第6次测试,冷启动耗时:418ms第7次测试,冷启动耗时:3...

2020-04-17 15:36:32 610

原创 Python进阶—多线程

文章目录方法一:继承threading.Thread类,然后重写run方法。方法二:直接使用threading.Thread()创建线程对象Python实现多线程有两种常见的方法。方法一:继承threading.Thread类,然后重写run方法。import randomimport threadingimport timeclass MyThread(threading.Thr...

2020-04-16 18:11:31 170

原创 【每天一道算法题6】【Python】求数组第k个最大元素

题目描述在未排序的数组中找到第 k 个最大的元素,示例 :输入: nums = [3, 2, 1, 5, 5, 6, 4] 和 k = 3输出: 5解法一:先排序后取值常规做法是先对数组nums从大到小排序,然后取nums[k-1]就行。排序算法可以选择快速排序,或者使用Python内置函数sorted(),此解法较简单,就不赘述了。时间复杂度是O(NlogN),N是nums长度。...

2020-04-12 23:08:32 785

原创 【每天一道算法题5】【Python】买卖股票的最佳时机

题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。...

2020-04-11 20:35:00 593

原创 【每天一道算法题4】【Python】复原ip地址

题目描述给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: “25525511135”输出: [“255.255.11.135”, “255.255.111.35”]前不久在在线面试腾讯时碰到过这题,10分钟解题时间,当时一时紧张没写出来,只知道这个题目要用用到回溯算法,回来仔细想了2个解法。解法一:回溯算法分析:ip地址格式规则:包含4部分,如 ...

2020-04-10 17:24:59 744

原创 【每天一道算法题3】【Python】分割数组为连续子序列

题目描述输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数。返回你是否能做出这样的分割?示例 1:输入: [1,2,3,3,4,5]输出: True解释:你可以分割出这样两个连续子序列 :1, 2, 33, 4, 5示例 2:输入: [1,2,3,3,4,4,5,5]输出: True解释:你可以分割出这样两个...

2020-04-09 21:17:44 1115

原创 【每天一道算法题2】【Python】全排列

题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解法一:递归 + 回溯def permutations(li: list) -> list: # 定义一个列表,用来存储每一次回溯完成时生成的排列 result ...

2020-04-08 18:28:29 519

原创 【每天一道算法题1】【Python】杨辉三角

题目描述给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。如下图:示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]解法一:递归法(优化前)# 使用递归计算第i行,第i列的元素def f(i, j): if j == 1 or j ==...

2020-04-07 20:27:11 859

原创 【学习笔记】【算法一】递归

1. 什么是递归?它是如何工作的?递归是一种解决问题的有效方法,在递归过程中,函数将自身作为子例程调用。简单的来说就是:在自己的函数体中调用自己。递归,需要有‘递’进关系和‘归’的条件。举一个简单的例子:求阶乘 n!# python3# 递归写法def factorial(n): if n == 1: # '归'的条件 return n ret...

2020-04-07 17:35:31 335

原创 Python进阶—Python解释器和GIL

一、什么是编译型语言和解释型语言编译型语言:程序在执行之前需要一个专门的编译过程,由编译器把源代码文件编译成为机器语言(二进制机器码)文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等。解释型语言:相对于编译型语言的一个概念,源代码文件不是直接翻译成机器语言(二进制机器码)文件,而是先翻译成中间代码(例如Java的.cl...

2020-03-25 14:03:00 237

原创 Elasticsearch之模糊查询

文章目录前言1、模糊查询之前缀查询-prefix2、模糊查询之通配符查询-wildcard3、模糊查询之正则查询-regexp前言模糊查询主要针对文本类型使用。1、当搜索字段是text类型时:由于它会分词,在执行wildcard、regexp、prefix时和es会检查字段中的每个词条,而不是整个字段。2、当搜索字段是keyword类型时:在执行wildcard、regexp、prefix...

2019-08-16 15:06:43 11558 1

原创 Django快速搭建网站

1. 安装Python如果不是特殊需要,建议安装Python3,因为Python2官方已经停止维护了。下载链接https://www.python.org/downloads/release/python-374/下载源码,编译安装python3。或者使用curl下载curl https://www.python.org/ftp/python/3.7.4/Python-3.7.4.t...

2019-08-15 14:19:13 1202 2

原创 【那些年碰到的坑】【Python2.7】UnicodeEncodeError

报错:SyntaxError: Non-ASCII character '\xe7' in file XXX on line XXX, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details原因:代码中有中文解决办法:代码第一行加上如下代码一般能解决。#coding:utf-8如果继...

2019-02-26 11:59:18 234

原创 【shell脚本】监控某个进程&挂掉重启

脚本monitor.sh#!/bin/shfile_name="/home/work/restart.log" #重启脚本的日志,保证可写入,保险一点执行 chmod 777 restart.logpid=0proc_num() { num=`ps -ef | grep 'sh /home/work/run.sh' | grep -v grep | wc -l` #此处'sh...

2019-02-22 15:55:35 5032 1

原创 【Android开发】Android系统架构

  Android大致可以分为四层架构:Linux内核层、系统运行库层、应用框架层和应用层。1、Linux内核层  Android系统是基于Linux内核的,,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、WI-FI驱动、电源管理等2、系统运行库层  这一层通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLi...

2018-08-23 20:56:35 403 1

原创 Python进阶—使用lambda创建匿名函数

匿名函数也就是没有名字的函数,语法: lambda 参数:表达式整个lambda表达式相当于一个def函数,可以传参,参数可以多个,以逗号隔开;有返回值。lambda常使用于创建简单的函数,一行搞定,灵活运用可使代码更简洁,举一些例子:func1 = lambda x: x**2def func2(x): return x**2print func1(2)print func2(

2017-09-29 16:11:33 1747 1

原创 Python进阶—filter函数

filter有“过滤”的意思,filter函数作用是过滤列表中的元素,返回一个由所有符合条件的元素组成的列表。符合条件即条件函数映射到该元素时返回值为True,话不多说,举栗子:list1 = [1, 2, 3, 4, 5, 6]#求列表中所有能被2整除的元素,并且结果以列表形式返回#方法一:list2 = []for i in list1: if i % 2 == 0:

2017-09-25 15:48:50 730

原创 Python进阶—map函数

map会将一个函数映射到一个输入列表的所有元素上。模板: map(function_to_apply, list_of_inputs)  当对一个列表所有元素进行相同操作时,新手比较常用的是,把列表中所有元素一个个地传递给一个函数,并收集输出。举个栗子,求列表中所有元素的平方:list1 = [1, 2, 3, 4, 5]squared = []for i in list1: sq

2017-09-24 21:59:16 1214 1

原创 Python进阶—*args与**kwargs详解

关于*args和**kwargs的使用,这常是新手很困惑的问题,当然也包括当初的我。***args表示非键值对的不定个数的变量列表**,其中args可以换成别的合法变量名,比如*vars。只有那个*是必须的。**kwargs表示带键值对的不定个数的参数列表,同理kwargs可以换成别的。当你不知道函数要传多少个参数时,这就很有用了。举个栗子:```python 2.xdef test(*arg

2017-09-22 22:53:42 1395 1

Python网络数据采集(完整版).pdf

Python网络数据采集(完整版).pdf 第一部分 创建爬虫 第1章 初见网络爬虫 2 第2章 复杂HTML解析 11 第3 章 开始采集 26 第4 章 使用API 42 第5 章 存储数据 61 第6 章 读取文档 80 第二部分 高级数据采集 第7 章 数据清洗 94 第8 章 自然语言处理 103 第9 章 穿越网页表单与登录窗口进行采集 120 第10 章 采集JavaScript 128 第11 章 图像识别与文字处理 139 第12 章 避开采集陷阱 154 第13 章 用爬虫测试网站 164 第14 章 远程采集 174

2017-09-28

空空如也

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

TA关注的人

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