您当前所在分类目录: tutorial

unicode 与 utf记录

字符串编码中会因为不同的编码而导致乱码问题,所以,出现了Unicode编码,Unicode编码是把所有语言的字符全部收集起来, 称为统一字符集(ucs),并把这些字符进行一个统一的编码,用一个整数码点来表示,范围是0-0x10ffff,所以大量的字符无法如 ASCII码一样只用一个字节就可存储。所以就涉及到如何更好的存储Unicode编码的问题。 很明显要表示一个Unicode码点需要三个字节,所 …

Continue reading

python排序函数sorted用法分析

在程序中经常会用到排序功能,python中提供了sorted函数来进行排序操作。 简单的排序操作直接使用sorted进行,复杂点的排序需要配合lambda表达式或者operator模块中的方法进行。 如下,首先是对自定义的复杂类型进行排序操作(包括复合排序),还有一类是对字典对象进行排序。 1.对自定义的对象进行较复杂的条件排序,比如按姓名排序,按成绩排序,先按成绩若成绩相等再按姓名排序等多种排序 …

Continue reading

python装饰器完整写法

在24中设计模式中有装饰模式,该模式的思想很简单,装饰物和被装饰物继承共同的类,然后装饰物中包含被装饰物的引用,这样就可以一层层进行装饰——可以有很多层装饰。 python中的装饰器跟这一模式类似,可以对方法进行装饰。比如对已有的函数要在其前后加上相应的预处理和后处理功能,可以使用装饰器方便的完成这一过程。 下面首先通过一个例子说明python中装饰器的用法。 假设有一个发送消息的方法sendMs …

Continue reading

python中正则表达式的使用

程序中经常要对字符串进行处理,处理用户的输入,对文本的编辑等等,都是对字符串的操作,对字符串的操作可以使用正则表达式来进行,正则表达式的使用会使得字符串的处理很方便。 这里就总结下python中的正则表达式,以及主要的用法。 首先\d,\s,\w,. 这四个表达式可以匹配单个字符,其中\d可以匹配任意一个数字0-9,\s可以匹配任意的空白字符,比如空格,tab键等等,\w可以匹配一个数字或者字母, …

Continue reading

python中多线程及锁的应用

python中的多线程执行可以使用threading模块,导入该模块然后可以利用模块中的多线程类来编写多线程程序,一般涉及到多线程程序的话就避不开锁,因为线程一般是共享进程的资源,所以当多线程要访问进程的资源时,为了保证一致性就要加锁。 在python中多线程实现主要是两种方式:1.直接生成threading.Thread的实例;2.以对象的方式(OOP)实现 1.直接生成threading.Th …

Continue reading

逆波兰表达式求解四则运算式

python的内建函数eval能对四则运算的表达式进行求解,这里简单实现下模拟eval,当然没有实现的向eval那么复杂,现在只能处理所有数字均为个位数的四则运算表达式,表达式包括+,-,*,/,(,)和数字(0-9)。实现的过程很简单,就是借助了逆波兰表达式,先把四则运算表达式转换成逆波兰表达式,然后根据逆波兰表达式求解结果。 程序代码如下,代码中已经实现写了文档测试,可以多测几个: #!/us …

Continue reading

python之异常和单元测试及文档测试

python中类似java和c++中一样,建立了一套异常体系,这样允许程序员能够捕获程序中出现的异常,然后简单处理或者继续抛出异常,从而保证程序的健壮性。 异常的语法比较简单,大体框架如下: try: express except oneException: solve exception except twoException solve exception finally: some post …

Continue reading

python之lambda

lambda函数实际就是匿名函数,现在C++中也支持lambda表达式了,说白了就是一个小的lambda函数。 匿名函数主要是用在某个函数只是使用一下,而且比较轻小,每笔要显示定义时使用,一般用在把函数作为参数传递时非常方便。 python中支持lambda函数,但是一般只支持一行的lambda函数,因为python中希望lambda函数不要太大,太大的话对代码的可读性不是很友好。 举个栗子,使用 …

Continue reading

python函数用法详解

python中的函数定义比较简单,但是由于参数的形式多样就导致可以定义非常灵活的函数,下面主要总结下python中函数的知识点。 1.定义 通过 1 def funcName(args): 2 funcBody 就可以定义一个python函数。 比如 1 def maxx(a, b): 2 if a < b: 3 return b 4 else: 5 return a 这样就定义了一个简单的 …

Continue reading

python常见的内置容器

python内置了不少容器,主要有list,tuple,dict和set等几种。 1.list 在python中list就类似于一个链表,或者说列表,从来从出大量数据 list.append(x); #在list的末尾添加元素x,尾部插入 list.extend(L); #L也是一个list,extend就是说在当前list后面插入整个L list.insert(index, x); #在list …

Continue reading

python中输入输出及输出格式化方法

经典的hello, world 1.python的输入输出主要是input和print从标准输入输出进行内容读取打印 print(‘hello, world!’); 这句可以在屏幕上打印hello, world! input()函数可以接受标准输入的输入内容,同时可以赋给一个相应的变量,var = input(); 当然也可以加入提示语,比如var=input(&#8216 …

Continue reading