python学习
Python以其灵活性和强大的功能,受到广大IT技术爱好者的关注,本专栏专注于Python的基本特性和应用。
零丁若叹
这个作者很懒,什么都没留下…
展开
-
VSCode中使用Pylint检查python代码
为什么使用lint在日常开发中,不同开发人员会写下不同风格的代码,导致代码可维护性变差,为了解决风格不一致问题,我们可以制定代码规范,让开发人员都遵守同样的规范编写代码。在开发过程中,部分代码存在质量问题,这个时候需要code review的方式,人工检查一些可能的错误。然而,在实际开发中,开发规范仍然严重依赖开发人员的自觉性,还是会出现一些不合规范的现象,在人员发生变化的时候,代码规范需要再次的普及和培训,也浪费了很多时间。代码质量的检查也是严重依赖开发人员review的细致程度,实际上还是有很多b.原创 2020-10-07 18:29:11 · 9090 阅读 · 2 评论 -
python中的装饰器
python中的装饰器可以装饰函数,也可以装饰类,功能是向函数或者类添加一些功能。类似于设计模式中的装饰模式,它可以把装饰器的功能实现部分和装饰部分分开,避免类中或者函数中冗余的代码。装饰器装饰函数:def decrator(f1): def newf(): print "strings will be connected:" print f1(); return newf;原创 2014-07-27 13:10:25 · 1314 阅读 · 0 评论 -
不相交集python实现
1.不相交集是解决等价关系的一种数据结构,执行合并和查找的速度都非常快,M次运行合并和查找的运行时间为(M*logN)。在一个集合中,对于每一对元素(a,b),a,b∈S,对于关系R如果满足下面三个条件,则成关系R为等价关系:(1)自反性 对于所有a∈S,aRa(2)对称性 aRb当且仅当bRa(3)传递性 若aRb且bRc,则aRc有关不相交集的介绍原创 2014-07-20 09:43:39 · 1448 阅读 · 0 评论 -
计数排序、桶排序python实现
计数排序在输入n个0到k之间的整数时,时间复杂度最好情况下为O(n+k),最坏情况下为O(n+k),平均情况为O(n+k),空间复杂度为O(n+k),计数排序是稳定的排序。桶排序在输入N个数据有M个桶时,如果每个桶的数据接近N/M个且桶内使用基于比较的排序,则桶排序的时间复杂度为O(N+M*N/M*log(N/M)).如果N=M时,每个桶只有一个数据,时间复杂度降低为O(N).桶排序的时间原创 2014-07-12 14:28:02 · 3233 阅读 · 0 评论 -
快速排序,归并排序,堆排序python实现
快速排序的时间复杂度1.快速排序原创 2014-07-12 13:34:56 · 1753 阅读 · 3 评论 -
选择排序、插入排序、冒泡排序python实现
选择排序的时间复杂度为O(n^2),是不稳定的排序冒泡排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),平均情况下为O(n^2),是稳定的排序插入排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),,平均情况下为O(n^2),是稳定的排序1.选择排序def selection(lista): leng=len(lista); for i in rang原创 2014-07-12 09:31:06 · 1625 阅读 · 1 评论 -
单链表反转python实现
单链表的反转可以使用循环,也可以使用递归的方式1.循环反转单链表循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。 代码:class ListNode: def __init__(self,x): self.val=x; self.next=None;def nonrecurse(he...原创 2014-07-05 09:51:21 · 30249 阅读 · 2 评论 -
二叉查找树python实现
1. 二叉查找树的定义:左子树不为空的时候,左子树的结点值小于根节点,右子树不为空时,右子树的结点值大于根节点,左右子树分别为二叉查找树2. 二叉查找树的最左边的结点即为最小值,要查找最小值,只需遍历左子树的结点直到为空为止,同理,最右边的结点结尾最大值,要查找最大值,只需遍历右子树的结点直到为空为止。二叉查找树的插入查找和删除都是通过递归的方式来实现的,删除一个结点的时候,先找到这个结点原创 2014-06-29 14:05:01 · 4332 阅读 · 1 评论 -
python实现的链表
python实现的链表,包括插入、查找、删除操作#!/usr/bin/python class linknode(): def __init__(self,k,n=None): self.key=k; self.next=n;def createlist(): #创建链表 n=raw_input("enter the num of nodes"); n=int(原创 2014-06-06 23:35:54 · 1568 阅读 · 0 评论 -
python中的数据结构
1. 列表(1) 建立列表list(‘python’)['p', 'y', 't', 'h', 'o', 'n'](2)列表的常用方法:append 在列表末尾添加元素>>>l=[‘a’,’b’,’c’]>>>l.append(‘d’)>>>l['a','b','c','d']count 统计某个元素在列表中出现的次数>>>['a','a'原创 2014-05-18 15:13:33 · 1254 阅读 · 0 评论 -
python使用正则表达式
python中使用正则表达式1. 匹配字符正则表达式中的元字符有 . ^ $ * + ? { } [ ] \ | ( )匹配字符用的模式有\d 匹配任意数字 \D 匹配任意非数字\s 匹配任意空白字符\S 匹配任意非空格字符 \w 匹配任意数字或者字母\W 匹配任意非数字或者字母 2. 正则表达式python中使用compile处原创 2014-05-17 23:53:09 · 1518 阅读 · 0 评论 -
python实现堆栈和队列
1.python实现堆栈,可先将Stack类写入文件stack.py,在其它程序文件中使用from stack import Stack,然后就可以使用堆栈了。stack.py的程序如下:class Stack(): def __init__(self,size): self.size=size; self.stack=[]; self.top=-1; def pus原创 2014-03-23 10:50:53 · 3485 阅读 · 0 评论 -
python中创建和遍历二叉树
python创建二叉树,源代码如下:#!/usr/bin/python class node(): def __init__(self,k=None,l=None,r=None): self.key=k; self.left=l; self.right=r;def create(root): a=raw_input('enter a key:'); if a is '#原创 2014-05-17 17:51:21 · 13733 阅读 · 4 评论 -
python中的yield
Python有yield表达式,它只能用于定义生成器函数,生成器可以控制函数的执行,函数可以再生成器语句出暂停执行,当前使用的变量,堆栈等都会保留,直到下次使用生成器方法。下面是一个yield的例子:def f(n): a,b=1,1; i=0; while i<n: yield b; a,b=b,a+b; i=i+1;然后产生生成器对象c=f(5原创 2014-02-08 00:09:55 · 3068 阅读 · 0 评论 -
python中的异常处理
在编写程序时可能会出现一些异常,比如类型错误,除零错误等,为了能捕获并处理这些异常,可以使用python的异常处理功能。python使用raise语句可以抛出异常,对于可能出现异常的语句块,用try语句包围起来,并用except捕捉,就可以实现异常处理了,比如:x=input("first number:")y=input("second number:")try: print x/原创 2014-02-22 22:40:38 · 1929 阅读 · 0 评论 -
python中的单元测试
python中的单元测试可以使用doctest,unittest完成1.doctest的使用(1)写入程序如下(cubetest.py):#!/usr/bin/pythondef cube(x): """ cube a number and return the result >>> cube(2) 8 >>> cube(3) 27 >>> cube(4) 64原创 2014-05-11 22:19:38 · 1333 阅读 · 0 评论 -
python中的静态方法和类方法
静态方法独立于类和类的实例,它是定义在类作用域内的方法。可以由类和实例直接调用。类方法和静态方法都要使用装饰器来定义,定义的基本格式是:@staticmethod def (): #do something类方法定义的基本格式是:@ classmethoddef (cls): #dosomething类方法与成员方法不同的是,它需原创 2014-05-11 12:51:25 · 2777 阅读 · 0 评论 -
python中的文件操作
1. python中常用的文件操作有open,write,read,readline,readlines,writelines,seek,tell,close等。open的函数原型为open(name[,mode[,buffering]]),name为文件的路径名,常见的mode有’r’ (读模式),’w’ (写模式),’a’追加模式,’b’ ( 二进制模式) ‘+’(可读可写模式),b原创 2014-03-02 12:17:15 · 1613 阅读 · 0 评论 -
python中的字符串处理
1.字符串转换s.lower() 转为小写s.upper() 转为大写s.swapcase() 大写转为小写,小写转为大写s.capitalize() 首字母大写转换为int类型 string.atoi(s) 或者int(s)转换为float类型 string.atof(s) 或者float(s)转换为long类型 string.atol(s)原创 2014-05-04 22:38:17 · 1353 阅读 · 0 评论 -
python中的继承
继承是面向对象的重要特征,它可以提高代码的复用性,从而减少某些代码的重写。继承可以分为单继承和多重继承。python中指定基类的方法是定义派生类时在括号中写入基类的名字,如class derive(base).python可以使用两种单继承的方法原创 2014-05-02 23:02:00 · 1606 阅读 · 0 评论