递归一个函数在执行过程中一次或多次调用其本身便是递归,就像是俄罗斯套娃一样,一个娃娃里包含另一个娃娃。递归其实是程序设计语言学习过程中很快就会接触到的东西,但有关递归的理解可能还会有一些遗漏,下面对此方面进行更加深入的理解递归的分类这里根据递归调用的数量分为线性递归、二路递归与多重递归线性递归如果一个递归调用最多开始一个其他递归调用,我们称之为线性递归。例如:defbinary_search(data,target,low,high):"""二分查找,对有
系统 2019-09-27 17:50:01 2076
withopen("1.txt")asf:whileTrue:line=f.readline()ifnotline:break;print(line.rstrip())
系统 2019-09-27 17:48:48 2076
0x00:使用xpath进行网页解析#coding:utf-8importrequestsimportosimportrefromlxmlimportetreeimporttimedefget_title(title):#获取标题,创建文件path=r"./Pic/"+titleifos.path.exists(path):#文件夹存在,返回returnpathelse:os.makedirs(path)#创建空文件夹returnpathdefpic_ge
系统 2019-09-27 17:48:14 2076
这货很强大,必须掌握文档链接http://docs.python.org/2/library/itertools.htmlpymotw链接http://pymotw.com/2/itertools/基本是基于文档的翻译和补充,相当于翻译了itertools用于高效循环的迭代函数集合组成总体,整体了解无限迭代器复制代码代码如下:迭代器参数结果例子count()start,[step]start,start+step,start+2*step,...count
系统 2019-09-27 17:47:57 2076
python处理时间的模块有三个:datetime,time,calendar;datetime模块主要是用来表示日期的,就是我们常说的年月日时分秒,calendar模块主要是用来表示年月日,是星期几之类的信息,time模块主要侧重点在时分秒,粗略从功能来看,我们可以认为三者是一个互补的关系,各自专注一块。1,time模块1.1时间的获取、表示、转换time模块获取时间的基本方法:tt=time.time()#1559201353.5570097得到的是时
系统 2019-09-27 17:47:42 2076
在python中可以使用in符号判断指定的元素是否存在于列表中,但我发现元组和数组存在区别,下面是详细实验结果。>>>'jb51.net'in['haotu.net','jb51.net']True>>>'jb51.net'in('haotu.net','jb51.net')True>>>'jb51.net'in['jb51.net/codes','haotu.net']False>>>'jb51.net'in('jb51.net/codes','haot
系统 2019-09-27 17:47:15 2076
cookie:PHPSESSID=et4a33og7nbftv60j3v9m86cro;Hm_lvt_51e3cc975b346e7705d8c255164036b3=1561553685;Hm_lpvt_51e3cc975b346e7705d8c255164036b3=1561553685首先分析一下浏览器中cookie的结构基本上是:key=value;key=value;key=value其中key=value之间用一个分号和一个空格分开首先写一下不
系统 2019-09-27 17:47:05 2076
分析分析网站寻找需要的网址用谷歌浏览器摁F12打开开发者工具,然后打开斗鱼颜值分类的页面,如图:在里面的请求中,最后发现它是以ajax加载的数据,数据格式为json,如图:圈住的部分是我们需要的数据,然后复制它的网址为https://www.douyu.com/gapi/rknc/directory/yzRec/1,出于学习目的只爬取第一页(减少服务器压力)。然后把网址放到浏览器中测试是否可以访问。如图:结果正常。分析json数据,提取图片链接最后分析发现
系统 2019-09-27 17:46:57 2076
django使用app机制来实现组件的重用,充分的利用已有的app可以极大的简化开发工作。目前django下的app虽然还不够丰富,却也还是有部分不错的。django-tagging就是一个不错的app。现在tag的应用非常广泛,tag基本上成了各网站的必备项目之一,django-tagging就是一个提供tag功能的app。django-tagging提供的功能非常丰富,使用起来却十分简单。下面我就介绍一些常用的用法,让大家对该app有个基本的了解,更详
系统 2019-09-27 17:46:09 2076
利用Python写了简单测试主机是否存活脚本,此脚本不适于线上使用,因为网络延迟、丢包现象会造成误报邮件,那么后续会更新判断三次ping不通后再发报警邮件,并启用多线程处理。#!/usr/bin/envpython#coding:UTF-8importtimeimportpexpectimportsmtplibfromemail.mime.textimportMIMETextmail_host="smtp.163.com"#定义smtp服务器mail_to
系统 2019-09-27 17:38:23 2076
前言随着站点的增多,管理复杂性也上来了,俗话说:人多了不好带,我发现站点多了也不好管,因为这些站点里有重要的也有不重要的,重要核心的站点当然就管理的多一些,像一些万年都不出一次问题的,慢慢就被自己都淡忘了,冷不丁那天出个问题,还的手忙脚乱的去紧急处理,所以规范的去管理这些站点是很有必要的,今天我们就做第一步,不管大站小站,先统一把监控做起来,先不说业务情况,最起码那个站点不能访问了,要第一时间报出来,别等着业务方给你反馈,就显得我们不够专业了,那接下来我们
系统 2019-09-27 17:38:21 2076
python语句与语法1.python简单语句的基本介绍>>>whileTrue:#简单的while循环...reply=input('Entertext:')#调用了Input,将输入传参给reply...ifreply=='stop':break#如果输入的是stop就退出循环...print(reply.upper())#如果输入的不是stop就一直将输入的转换为大写字母...Entertext:abc#这是第一个输入abc,看到下面转换成大写的AB
系统 2019-09-27 17:38:15 2076
类的特殊成员之call#!/usr/bin/envpython#_*_coding:utf-8_*_classSpecialMembers:#类的构造方法def__init__(self):print("MyBlogisUrl:http://yw666.blog.51cto.com")#对象的构造方法def__call__(self):print("MyNameis:Yangwen")#创建一个对象,并且执行类的构造方法obj=SpecialMembers
系统 2019-09-27 17:56:02 2075
说明:关于类的这部分,我参考了《LearningPython》一书的讲解。创建类创建类的方法比较简单,如下:复制代码代码如下:classPerson:注意,类的名称一般用大写字母开头,这是惯例。当然,如果故意不遵循此惯例,也未尝不可,但是,会给别人阅读乃至于自己以后阅读带来麻烦。既然大家都是靠右走的,你就别非要在路中间睡觉了。接下来,一般都要编写构造函数,在写这个函数之前,先解释一下什么是构造函数。复制代码代码如下:classPerson:def__ini
系统 2019-09-27 17:55:28 2075
Python算术运算符以下假设变量a为10,变量b为20:运算符描述实例+加-两个对象相加a+b输出结果30-减-得到负数或是一个数减去另一个数a-b输出结果-10*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果200/除-x除以yb/a输出结果2%取模-返回除法的余数b%a输出结果0**幂-返回x的y次幂a**b输出结果20//取整除-返回商的整数部分9//2输出结果4,9.0//2.0输出结果4.0以下实例演示了Python所有算术运算符
系统 2019-09-27 17:55:21 2075