Python学习笔记
l_xm
熟悉Python后台开发、Python爬虫、Android开发
展开
-
[第三弹]Python正则表达式基础
sub(repl, string[, count]) | re.sub(pattern, repl, string[, count]): 使用repl替换string中每一个匹配的子串后返回替换后的字符串。 当repl是一个字符串时,可以使用\id或\g、\g引用分组,但不能使用编号0。 当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返转载 2014-10-11 13:42:07 · 393 阅读 · 0 评论 -
[pyhton]桶排序
#coding:utf-8#bucketSortdef bucketSort(L,length): buckets = [[] for i in range(10)] for i in range(length): for item in L: num = item / (10 ** i) % 10 (buckets[原创 2015-04-02 23:18:08 · 386 阅读 · 0 评论 -
[pyhton]选择排序
#选择排序def selectSort(L,key): Len = len(L) for i in range(Len-1,0,-1): large = key(L[0]) index = 0 for j in range(1,i+1): if key(L[j]) > large:原创 2015-03-31 21:05:43 · 451 阅读 · 0 评论 -
[python]插入排序和希尔排序
插入排序算法描述:插入排序是一种通过将记录插入到已排序好的记录当中的方法。假设要将第i个元素插入到前i-1个已排序好的元素中:首先设置一个变量keep_value保存L[i]的值依次将keep_value和Lj进行比较,如果L[k]>keep_value,那么执行L[k+1]=L[K];否则,停止比较,执行L[k+1]=keep_value。完成插入如果前面所有元素都大于keep_value,原创 2015-04-01 19:03:47 · 408 阅读 · 0 评论 -
[python]归并排序
# coding:utf8####归并排序def merge(l, i, m, j): k1 = i k2 = m + 1 tmp = [] while k1 <= m and k2 <= j: if l[k1] < l[k2]: tmp.append(l[k1]) k1 = k1 + 1原创 2015-04-01 19:47:28 · 421 阅读 · 0 评论 -
socket官方文档中文翻译(部分)
socket支持三种address family:A single string is used for the AF_UNIX address family.A pair (host, port) is used for the AF_INET address family, where host is a string representing either a hostname in In翻译 2015-04-05 15:33:57 · 3418 阅读 · 1 评论 -
计数排序
def counting_sort(L, start, end): #用于计数,start表示L中最小的元素,end表示L中最大的元素 len_start_to_end = end - start + 1 c = [0 for i in range(len_start_to_end)] N = len(L) #统计每个元素出现的次数 for eleme原创 2015-04-19 21:50:50 · 401 阅读 · 0 评论 -
[python]python标准库(模块)简介
fnmatch文件名匹配模块fnmatch.fnmatch(filename,pattern) pattern 含义 * 匹配任意字符 ? 匹配单个字符 [seq] 匹配seq中的某一个字符 [!seq] 匹配不在seq中的任一字符glob待补充getopt获取命令行参数的模块getopt.getopt(args, options[, long_options原创 2015-04-11 20:54:54 · 485 阅读 · 0 评论 -
python第三方库使用经验
requests官方中文帮助文档: 1. requests1.1.0快速上手 2. requests1.1.0高级用法Beautifulsoup官方中文帮助文档: BeautifulSoup 使用BeautifulSoup的例子def regUrls(): html_file = open('E:\WORK_FILE\Python\Python2\userful\coursera\c原创 2015-04-16 20:04:35 · 460 阅读 · 0 评论 -
[pyhton]python cookbook学习笔记
测试一个对象是否是类字符串isinstance type(obj) == type(”)try: obj + ''except: return Falseelse: return True字符串对齐string.ljust(width,fill)string.rjust(width,fill)string.center(width,fill)去除字符串中包含的原创 2015-04-11 20:19:33 · 869 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-07-12 09:49:10 · 516 阅读 · 0 评论 -
约瑟夫问题
##约瑟夫问题import randomdef josephProblem(L,N): #start = random.choice(range(len(L))) start = 2 print 'start:',L[start],L current = start count = 1 while len(L) > 1: print原创 2015-03-22 15:44:16 · 355 阅读 · 0 评论 -
[pyhton]二叉树排序
biTree.pyimport Queueclass biTreeNode(object): '''二叉树节点类,只有left,right,data属性''' def __init__(self,data=0): self.left = None self.right = None self.data = dataclass biTr原创 2015-03-28 19:46:12 · 488 阅读 · 0 评论 -
[Python]中缀表达式转前缀表达式
#判断运算符的优先级def opOrder(op1,op2): order_dic = {'*':4,'$':5,'/':4,'+':3,'-':3} if op1 == '(' or op2 == '(': return False elif op2 == ')': return True else: if orde原创 2015-03-20 19:05:06 · 2618 阅读 · 0 评论 -
[第一弹]os.walk的相关用法
os.walk(string )的参数原创 2014-10-11 12:43:08 · 638 阅读 · 0 评论 -
[第四弹]Python学习资料集合
1.Django Bookhttp://djangobook.py3k.cn/2.0/原创 2014-10-11 18:37:04 · 587 阅读 · 0 评论 -
[第五弹]base64模块
Base64 是网络上最常见的用于传输 8 bit 字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有 MIME 的详细规范。Base64 要求把每三个 8 bit 的字节转换为四个 6bit 的字节(3×8 = 4×6 = 24),然后把 6 bit 的字节再添两位高位 0,组成四个 8bit 的字节,也就是说,转换后的字符串理论上将要比原来的长 1/3。当然,P原创 2014-10-11 23:15:44 · 344 阅读 · 0 评论 -
[python]Huffman Encoding哈夫曼编码
#Huffman Encoding#Tree-Node Typeclass Node: def __init__(self,freq): self.left = None self.right = None self.father = None self.freq = freq def isLeft(self):原创 2015-03-25 19:13:42 · 8123 阅读 · 2 评论 -
[python]将中缀表达式(infix)转换为后缀表达式(postfix)
将中缀表达式(infix)转换为后缀表达式(postfix)算法描述第一种情况,表达式不含括号。假设存在一个函数prcd(op1,op2),其中op1和op2是两个操作符(在中缀表达式中,op1在op2的左边),如果op1的优先级高于或等于op2,函数返回True,否则返回False。例如:prcd('\*','+') --> Trueprcd('+','-') --> Trueprcd('\*'原创 2015-03-18 21:39:48 · 4020 阅读 · 0 评论 -
欧几里德和stein两种算法求最大公约数
1.欧几里德原理:`gcd(x,y) = gcd(y,x%y)`2.stein原理:`gcd(k*x,k*y) = k*gcd(x,y)`Python实现#欧几里德辗转相除法求最大公约数def euclidGcd(x,y): assert x >= 0 and y >= 0 if y == 0: return x return euclidGcd(y,原创 2015-03-20 13:10:55 · 683 阅读 · 0 评论 -
[c]队列queue
#include <stdlib.h>#include <stdio.h>#include <string.h>struct Queue{ int head; int rear; int allocLength; int elemSize; void * elems;};void InitQueue(struct Queue *q,int len,in原创 2015-03-26 20:55:17 · 481 阅读 · 0 评论 -
[python]汉诺塔问题求解
汉诺塔问题:将A塔上的5个圆盘移动到C塔上 可以用递归的思路来求解该问题,为了使问题一般化,假设要移动n个圆盘。根据递归的思路,可以考虑先把上面n-1个圆盘移动到B塔上,然后将最底下的n号圆盘移动到C塔,再将B塔上n-1个圆盘移动到C塔。 Python实现#towers of hanoi 汉诺塔问题def extList(L,length=5): if len(L) == length原创 2015-03-20 15:37:24 · 857 阅读 · 0 评论 -
[C]冒泡排序
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-03-27 17:39:36 · 414 阅读 · 0 评论 -
快速排序
快速排序的重点在于如何分区,首先从数组中选取一个基准值,然后把小于基准值的元素放到左边,大于基准值的元素放到右边。如下图所示 c实现#include <stdio.h>int partition(int L[],int lb,int ub){ int find,down,up,tmp; find = L[lb]; down = lb; up = ub;原创 2015-03-27 19:20:33 · 372 阅读 · 0 评论