![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
狼性书生
臭虫洗香香
展开
-
Django实现注册登录 --- 传统HTTP Basic认证+Session会话
采用Django实现的注册登录功能项目地址:https://github.com/ylpxzx/Login_DjangoAuth主要实现内容效果演示未登录情况下,无法访问需要登录认证的页面点击右上角的“气泡”按钮,未登录情况下,自动跳转到登录页面自动跳转到登录页注册演示填写正确邮箱号后,邮箱将接受到激活信息,点击激活信息,即可登录登录成功演示点击右上角气泡按钮,跳转到气泡页项目实现安装所需库pip install pillowpip install djang原创 2020-05-24 15:56:18 · 1538 阅读 · 0 评论 -
Leetcode --- 搜索插入位置(python3实现)
题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1这道题相对来说较简单,没有太多难理解的点,所以我们直接实现。代码实现:三种方式实现class...原创 2020-03-04 22:43:22 · 210 阅读 · 0 评论 -
Leetcode --- 删除排序数组中的重复项 和 移除元素(python3实现)
题目描述1.删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考...原创 2020-03-01 21:57:26 · 278 阅读 · 0 评论 -
Leetcode --- 解压缩编码列表(python3实现)
题目描述给你一个以行程长度编码压缩的整数列表nums。考虑每对相邻的两个元素 [a, b] = [nums[2*i], nums[2*i+1]](其中i >= 0),每一对都表示解压后有 a个值为b的元素。请你返回解压后的列表。示例:输入:nums = [1,2,3,4]输出:[2,4,4,4]解释:第一对 [1,2] 代表着 2 的出现频次为 1,所...原创 2020-02-21 21:06:33 · 467 阅读 · 0 评论 -
支付宝小程序+Django获取会员基础信息(获取用户唯一标识 user_id和access_token)
吐槽相对于起步早的微信小程序来说,网上有关支付宝小程序的相关案例要少许多(一问度娘,皆是微信小程序),更别说用python来实现支付宝小程序的案例了,可以说是大海捞针。所以,本人打算在此记录下个人开发支付宝小程序遇到的一些问题,如有失误之处,还请体谅。准备1.自行注册支付宝小程序2.注册成功后在开发中心—小程序应用—选择小程序—开发管理–功能列表中添加‘获取会员基础信息’的功能。3.下载...原创 2019-10-24 08:58:55 · 2097 阅读 · 0 评论 -
Leetcode---两数之和(Python3实现)
两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 +...原创 2019-06-26 11:19:27 · 171 阅读 · 0 评论 -
Python---深浅拷贝
目录Python---深浅拷贝is和==is==深浅拷贝深浅拷贝的不同之处:接下来,举例演示下一层拷贝与多层拷贝的情况:Python---深浅拷贝is和== is 也叫同一性运算符,比较判断的是对象间的唯一身份标识,也就是id是否相同。例子:a = b = ['123456']c = ['123456']print(a == b, ...原创 2019-06-12 11:28:34 · 315 阅读 · 0 评论 -
python----迭代器
目录Python中的迭代器1.Iterator 和Iterable迭代器(Iterator)可迭代对象(Iterable)2.Itertools 模块3.生成器(Generator)Python中的迭代器1.Iterator 和Iterable 迭代器(Iterator) 迭代器是实现了迭代器协议的类对象,迭代器协议规定了迭代器类必需定义__...转载 2019-06-12 10:41:29 · 133 阅读 · 0 评论 -
python---lambda表达式
lambda是在python语言中使用频率较高的一个关键字,是一个匿名函数(即没有名字的函数)语法:lambad list:expressionlist是一个参数列表,职责是输入,可以有如下形式:lambad x,y:expressionlambad x=2,y=3:expressionlambad a,b=2,*args:expressionlambad **kwargs...原创 2019-06-12 10:09:09 · 222 阅读 · 0 评论 -
python算法(基础)----栈
栈(有时称为“后进先出栈”)是一个项的有序集合其中添加移除新项总发生在同一端。这一 端通常称为“顶部”。与顶部对应的端称为“底部”。这种排序原则有时被称为 LIFO。栈的底部很重要,因为在栈中靠近底部的项是存储时间最长的。Figure 3 展示了 Python 数据对象创建和删除的过程,注意观察他们的顺序想想这种反转的属性,你可以想到使用计算机的时候所碰到的例子。例如,每个 web...原创 2019-05-24 10:50:30 · 15132 阅读 · 5 评论 -
Leetcode—整数反转(Python3实现)
整数反转题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31− 1]。请根据这个假设,如果反转后整数溢出那么就...原创 2019-07-02 22:14:56 · 293 阅读 · 0 评论 -
Leetcode---回文数(Python3实现)
回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。进阶:第一种方法:将数字转为字符串,反转比较第二种方法(进阶):取余数,存列表,反转比较判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -1...原创 2019-07-08 15:42:55 · 195 阅读 · 0 评论 -
Leetcode---罗马数转整数(Python3实现)
Leetcode—罗马数转整数(花了半天时间,结果没做出来,心累~~~~,只能依靠网友的解题思路了)罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存...原创 2019-07-11 21:17:13 · 138 阅读 · 0 评论 -
Python---知识点(闭包延迟绑定)
闭包在一个函数内部定义另一个函数,外部的函数为外函数,内部的函数为内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这就形成了一个闭包。通常情况下,一个函数运行结束后,函数内部的所有东西都会被释放掉,局部变量也会消失。但是如果外函数在结束时发现自己的临时变量会在内函数中用到时,就会把这个临时变量绑定给内函数,然后外函数才结束。有一道很经典的案例:def m...原创 2019-07-29 15:09:10 · 261 阅读 · 0 评论 -
Python----知识点(嵌套列表)
嵌套列表(内存地址指向的问题)蛇友们都了解python中的一种数据类型:列表(list)而嵌套列表,就是列表中包含列表。听起来挺简单的,但确实是挺简单的,不过在使用嵌套列表时还是会遇到你意想不到的结果接下来,就来简单介绍下我遇到的坑点:#test为嵌套列表(表示为五行三列)test=[[0] * 3] * 5#试图对第一行第三列赋值test[0][2]=3print(te...原创 2019-07-25 15:08:08 · 23857 阅读 · 1 评论 -
Python----知识点(默认参数的调用)
默认参数的调用带有默认参数的函数,在函数被定义的那一刻就执行了计算,而不是在函数被调用的时候执行计算。在未指定特定参数的情况下,在函数被定义的那一刻就执行了计算的默认参数将在下一次继续被使用,不会覆盖之前的结果。例子:#带有默认参数的函数def default_data(i,list=[]): #判断是否为字符型 if isinstance(i,str): ...原创 2019-07-25 15:55:24 · 638 阅读 · 0 评论 -
Leetcode--- 最长公共前缀(Python3实现)
Leetcode—最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。这道题的切入...原创 2019-07-22 08:46:56 · 940 阅读 · 0 评论 -
Python算法(基础)----归并排序
归并排序原理采用分而治之的原理: 一、将一个序列从中间位置分成两个序列; 二、在将这两个子序列按照第一步继续二分下去; 三、直到所有子序列的长度都为1,也就是不可以再二分截止。这时候再两两合并成一个有序序列即可。一图以明之 两种实现方式:一、def merge(a, b): c = [] h = j = 0 ...原创 2019-05-30 09:50:24 · 470 阅读 · 0 评论 -
Python算法(基础)----希尔排序
希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本,该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效...原创 2019-05-30 09:47:45 · 180 阅读 · 0 评论 -
OCR识别验证码
介绍:爬虫过程中,经常难免的会遇到各种各样的验证码,对于图形类验证码,我们可以用OCR(Optical Character Recognition ---光学字符识别)来识别.安装tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/上面文件名中,带dev的为开发版本,不带dev的为稳定版本,我们选择不带dev的版本,即te...原创 2018-10-28 12:03:43 · 3372 阅读 · 0 评论 -
采用requests请求+xpath与正则表达式解析+Mysql与json存取:爬取高考网主页与子页的学校基本信息和往年录取分数线
爬取高考网主页与子页的学校基本信息和往年录取分数线高考网创建Mysql数据库和存储实现先了解下高考网的一些爬取阻碍完整代码高考网链接: http://college.gaokao.com/schlist/a14/p1/本章主要介绍下简单的爬取,不采用任何框架,只爬取广东省内的高校,让读者能对requests的请求方式,正则表达式与xpath的解析方式,json与MYSQL的存取方式有一定了解...原创 2019-03-06 22:42:47 · 825 阅读 · 1 评论 -
爬取今日头条-图片,进一步了解Ajax的分页模拟,以及存入关系型数据库MySQL和非关系型mongodb的基本代码
爬取今日头条-图片与上一篇爬取‘今日头条-街拍’分页模拟的区别(其他步骤大致一样)分析Headers代码构造代码实现实现结果与上一篇爬取‘今日头条-街拍’分页模拟的区别(其他步骤大致一样)上一篇爬取‘今日头条-街拍’时,分页的实现可以简单的通过Query String Parameters获取到其固有的分页参数,而这次爬取今日头条-图片集,Query String Parameters中的...原创 2019-03-19 23:30:52 · 416 阅读 · 1 评论 -
爬取今日头条-街拍,了解Ajax分析的流程、Ajax分页的模拟以及图片的下载
爬取今日头条-街拍什么是Ajax查看并分析请求解析内容图片下载:代码实现运行结果:什么是AjaxAjax,即异步的Javascript和XML,利用Javascript在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术.想进一步了解的可以到W3School中学习.查看并分析请求1.查看请求:以Chrome浏览器为例,用Chrome浏览器打开今日头条-街拍的链接...原创 2019-03-15 21:51:44 · 204 阅读 · 0 评论 -
python算法(基础)---算法分析
算法分析 1.首先我们通过 ‘计算前n个整数的和’ 的两个不同算法,来体验下同种问题下不同算法之间的差异。计算前n个整数的和,这里使用初始化值为0的累加器变量来迭代n个整数。(一个简单的累加函数)def sumOfN(n): theSum=0 for i in range(1,n+1): theSum=theSum +i return t...原创 2019-05-16 09:53:57 · 1669 阅读 · 0 评论 -
python算法(基础)----队列(先进先出,FIFO)
队列被构造为在队尾添加项的有序集 合,并且从队首移除。队列保持 FIFO 排序属性。 队列操作如下。Queue() 创建一个空的新队列。 它不需要参数,并返回一个空队列。 equeue(item) 将新项添加到队尾。 它需要 item 作为参数,并不返回任何内容。 dequeue() 从队首移除项。它不需要参数并返回 item。 队列被修改 isEmpty() 查看队列是否为空。它不需要...原创 2019-05-25 08:44:41 · 8809 阅读 · 0 评论 -
python算法(基础)----Deque(也称为双端队列)
Deque是与队列类似的项的有序集合。它有两个端部,首部和尾部,并且项在集合中保持不变。deque 不同的地方是添加和删除项是非限制性的。可以在前面或后面添加新项。同样,可以从任一端移除现有项。在某种意义上,这种混合线性结构提供了单个数据结构中的栈和队列的所有能力。 Figure 1 展示了一个 Python 数据对象的 deque 。Deque抽象数据类型下面给出了 deque 操作...原创 2019-05-25 08:50:54 · 691 阅读 · 0 评论 -
selenium实现定位截图----获取验证码图片
获取验证码的步骤:浏览器最大化,截取整个网页,并保存 定位验证码(通过id或class元素实现定位) 获取验证码的x,y坐标轴,以及长宽,形成我们需要获取的位置坐标 打开之前保存的网页截图,从中截取验证码 保存验证码,等待识别这里我们以搜狗微信公众号的验证页为例,实现验证码的定位截取。# encoding:utf-8from PIL import Imagefrom sel...原创 2019-05-26 10:46:18 · 14164 阅读 · 14 评论 -
Django+xadmin实现后台和表单上传图片
简单的演示下,Djang+xadmin上传图片的步骤前提:请自行创建Django项目和配置xadmin完整的代码路径:https://github.com/ylpxzx/Django_imageupload这里我们采用StdImageField来实现图片上传创建好Django app应用,这里我创建的是名为project的项目和名为password的应用以下是目录结构在p...原创 2019-05-26 11:50:57 · 1208 阅读 · 0 评论 -
python算法(基础)----无序列表抽象数据类型
下面给出了一些可能的无序列表操作。List() 创建一个新的空列表。它不需要参数,并返回一个空列表。 add(item) 向列表中添加一个新项。它需要 item 作为参数,并不返回任何内容。假定该 item 不在列表中。 remove(item) 从列表中删除该项。它需要 item 作为参数并修改列表。假设项存在于列表中。 search(item) 搜索列表中的项目。它需要 item 作为...原创 2019-05-27 09:16:14 · 1097 阅读 · 0 评论 -
python算法(基础)----有序列表抽象数据结构
有序列表抽象数据结构我们现在将考虑一种称为有序列表的列表类型。例如,如果上面所示的整数列表是有序列表 (升序),则它可以写为 17,26,31,54,77和93 。由于 17 是最小项,它占据第一位置。同样, 由于 93 是最大的,它占据最后的位置。 有序列表的结构是项的集合,其中每个项保存基于项的一些潜在特性的相对位置。排序通常 是升序或降序,并且我们假设列表项具有已经定义的有意义的比较运算...原创 2019-05-27 09:22:28 · 844 阅读 · 0 评论 -
python算法(基础)----递归
递归是一种解决问题的方法,将问题分解为更小的子问题,直到得到一个足够小的问题可以被很简单的解决。通常递归涉及函数调用自身。递归允许我们编写优雅的解决方案,解决可能很难编程的问题。简单例子:计算整数列表和我们将以一个简单的问题开始,你已经知道如何不使用递归解决。假设你想计算整数列表的总和,例如: [1,3,5,7,9] 。def listsum(numList): theSum...原创 2019-05-27 09:32:27 · 418 阅读 · 0 评论 -
python算法(基础)----python数据结构的性能
列表两个常见的操作是索引和分配到索引位置。无论列表有多大,这两个操作都需要相同的时间。当这样的操作和列表的大小无关时,它们是 O(1)。另一个非常常见的编程任务是增加一个列表。有两种方法可以创建更长的列表,可以使用 append 方法或拼接运算符。append 方法是 O(1)。 然而,拼接运算符是 O(k),其k是要拼接的列表的大小。让我们看看四种不同的方式,我们可以生成一个从0开始的n个数...原创 2019-05-23 09:12:03 · 264 阅读 · 0 评论 -
Python算法(基础)----冒泡排序
冒泡排序需要多次遍历列表。Figure 1 展示了冒泡排序的第一次遍历。阴影项正在比较它们是否乱序。如果在列表中有 n 个项目,则第一遍有 n-1 个项需要比较。交换操作,有时称为 swap ,在Python 中与在大多数其他编程语言略有不同。通常,交换列表中的两个元素需要临时存储位置(额外的内存位置)。代码片段如下temp=alist[i]alist[i]=alist[j]alist[...原创 2019-05-30 09:22:05 · 247 阅读 · 0 评论 -
Python算法(基础)----选择排序
选择排序选择排序改进了冒泡排序,每次遍历列表只做一次交换。为了做到这一点,选择排序在遍历时寻找最大的值,并在完成遍历后,将其放置在正确的位置。遍历 n-1 次,排序 n 个项。以下展示了整个排序过程。def selectionSort(alist): for fillslot in range(len(alist)-1,0,-1): positionOfMax=0...原创 2019-05-30 09:27:09 · 167 阅读 · 0 评论 -
Python算法(基础)----插入排序
插入排序插入排序,尽管仍然是 O(n2),工作方式略有不同。它始终在列表的较低位置维护一个排序的子列表。然后将每个新项“插入”回先前的子列表,如下图所示下图详细展示了第五次遍历的情况。遍历到第五次时,存在由 17,26,54,77 和 93 组成的五个项的排序子列表。我们插入 31 到已经排序的项。第一次与 93 比较导致 93 向右移位。77 和 54 也向右移位。 当遇到 26 时...原创 2019-05-30 09:43:16 · 114 阅读 · 0 评论 -
《Python基础教程》笔记---生成器
生成器 生成器可以说是一个相对较新的python概念,python解释器会将带有yield的函数视为生成器处理。虽然说生成器可以帮你编写出比较优雅的代码,但一般编写的程序,都可以不使用生成器(因为基本可以用其他代码替代)不过,生成器是内存友好型的,在处理大数据,占用大内存的情况,还是有很大的用处。 生成器由两部分组成:生成器的函数和生成器的迭代器生成器的函数:由def语句定义...原创 2018-10-16 12:46:05 · 368 阅读 · 0 评论