python笔记
文章平均质量分 51
登陆_注册_帮助
这个作者很懒,什么都没留下…
展开
-
博文说明
归类为"python笔记"的文章,为个人学习python所做的一些零碎笔记记录。由于只有三类,因笔记为亲自记录整理,所以归为原创。所记载内容可能会有部分重复,但例子比较简单,供相互学习查看。请勿转载。谢谢!!原创 2015-05-30 15:53:42 · 380 阅读 · 0 评论 -
三元表达式
格式: 真 if True else 假print 4 if True else 3活用 list :[假,真][ 条件 ]当条件为真(值为1),即取 list 的第二个值 为假(值为0),即取 list 的第一个值。原创 2015-05-30 15:44:51 · 566 阅读 · 0 评论 -
__code__拿到代码信息
__code__ 示例:>>> def func(arg1,arg2):... return arg1*arg2... >>> print dir(func.__code__)['__class__', '__cmp__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__原创 2015-05-30 15:25:37 · 474 阅读 · 0 评论 -
os.path
os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法。更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.html1.os.path.abspath(path)返回path规范化的绝对路径。 >>> os.path.abspath('test.csv')'C:\\Python25\\test.cs原创 2015-05-30 15:34:18 · 764 阅读 · 0 评论 -
sys.stdout
##将标准输出绑定到f上,会显示在屏幕上的内容也会被写入test.txtimport sysimport stringf=open('test.txt','w')sys.stdout=f help(string)f.close()原创 2015-05-30 15:39:30 · 469 阅读 · 0 评论 -
占位符 && format
占位符用 %s 代表字符串 ,%d 代表整数:>>> a="this is %s %s"%('my','apple')>>> print a>>> this is my appleformat()为字符串内置方法,它的占位符用 {} 代替,传入对应参数即可:>>> b="this is {} {}".format('my','apple')>>> print b>>> th原创 2015-05-30 15:45:54 · 528 阅读 · 0 评论 -
<>正则表达式
'^men' 标识匹配以 men 开头的字符串。'[^mem]'标识匹配不是其中的字符串。$ stands for matching entirelyeg: re.match('\d&','44') ## Wrong re.match('\d','4') ## Correct() stands for you are prepar原创 2015-05-30 15:46:19 · 320 阅读 · 0 评论 -
global全局变量
global 代表引用全局变量:>>> b=3>>> def func():>>> global b>>> b = 4>>> return b>>> print b>>> 4原创 2015-05-30 15:28:46 · 389 阅读 · 0 评论 -
<>logging 日志模块
使用 logging 的一般步骤:import logging logger = logging.getLogger()hdlr = logging.FileHandler('/tmp/sendlog.txt')formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')hdlr.setFormatt原创 2015-05-30 15:33:44 · 296 阅读 · 0 评论 -
sys.exc_info()获取异常
sys.exc_info() 取得异常信息:>>> try:... a=2... assert a!=2... except:... print sys.exc_info()... (, AssertionError(), )返回元组的第二个信息包含错误信息。如果assert 有错误信息,将会被返回在元组的第二个值里。原创 2015-05-30 15:38:22 · 3905 阅读 · 0 评论 -
<<、>>等位运算符
>> 和 << 都是按二进制位移动,即 ÷2 和 ×2>>> print 0b113>>> print 0xff255>>> print 0xff>>1127>>> print 10<<120----------------------------------------------------------------------------可以使用 bin()来将数值转换原创 2015-05-30 15:41:34 · 323 阅读 · 0 评论 -
python学习记录
pypi.python.org官方模块查询原创 2015-05-30 15:51:42 · 320 阅读 · 0 评论 -
import this
可以直接输入 python -m this 来引入,也可以使用 os 模块os 模块可以直接在程序中执行命令行。然今用read() 方法把结果拿出来 。>>> m = os.popen('python -m this','').read()原创 2015-05-30 15:29:36 · 591 阅读 · 0 评论 -
lambda表达式
lambda 后面跟参数,:后面跟要返回的表达式。>>> g= lambda x:x+1>>> g(1)2filter 使用 lambda 进行过滤:>>> t = [0,5,'b',698]>>> g = filter(lambda x:x>3,t)>>> g[5, 'b', 698]原创 2015-05-30 15:30:37 · 292 阅读 · 0 评论 -
pickle对象序列化
import pickleclass Test(object): def a(slf): return 4 def b(slf): return 5>>> t =Test()>>> g = pickle.dumps(t) ##序列化>>> g'ccopy_reg\n_reconstructor\np0\n(c__main__\nTest\np1\nc__builtin原创 2015-05-30 15:34:51 · 291 阅读 · 0 评论 -
translate() & maketrans()
在 string 中也有 maketrans() 和 translate() 方法:import string>>> a='i am chosan'>>> import string>>> string.makestrans('i','I')>>> b=string.maketrans('i','I')>>> b'\x00\x01\x02\x03\x04\x05\x06\x07\x原创 2015-05-30 15:39:09 · 348 阅读 · 0 评论 -
yield 生成器即方法
def func(): x = yield print '第一次哦%s'%x y = yield 4 print '第二次哦%s'%xt =func()print t.next()print t.send('AAAAAA')print t.send(5)yield 会把后面的值返回,并且返回过后就暂停,但yield 不会将他后面的值传给等号左边的值,而是返回 None。s原创 2015-05-30 15:41:19 · 325 阅读 · 0 评论 -
threading 多线程
threading.Thread() 实线多线程;threading.Lock() 实线加锁;import threadingdef test(): print 1a = threading.Thread(target=test)a.start()如果 test() 函数有参数,则需要在 threading.Thread() 中写入第二个参数 args=[参数]如 :d原创 2015-05-30 15:38:41 · 435 阅读 · 0 评论 -
sys.path导入外部模块
import syssys.path.append('absPATH(绝对路径)')然后就可以 import 该路径下面的 .py 模块如:import syssys.path.append('/tmp/m')import m1print m1.hash()原创 2015-05-30 15:38:48 · 317 阅读 · 0 评论 -
isinstance()类型检测
>>> isinstance(1,int)True>>> isinstance('a',str)True>>> type('a')>>> type(1.024)isinstance()还可以用来查看函数返回值类型:>>> def func():... return 1... >>> type(func)>>> type(func())原创 2015-05-30 15:31:36 · 357 阅读 · 0 评论 -
platform.system()检测平台
>>> import platform>>> platform.system()'Linux'原创 2015-05-30 15:33:56 · 868 阅读 · 0 评论 -
print
print 中的 , 可以将不同行的内容连接在一起输出:print 4,print 5,print 6输出: 456重定向 >>:用 print 将 'haha' 写入文件 test.txt:f = open('test.txt','w')print >> f,'haha'f.close()原创 2015-05-30 15:34:38 · 286 阅读 · 0 评论 -
set集合(去重)
set的添加数据方法有二,区别: add() 方法会将整个数据作为一项加入,而 update() 会将整个数据切分成单个字符逐一添加进 set() 集合1、调用 update() 方法>>> b=set()>>> b.update('python')>>> bset(['h', 'o', 'n', 'p', 't', 'y'])2、调用 add() 方法>>> b=set()原创 2015-05-30 15:35:59 · 638 阅读 · 0 评论 -
文件操作
打开文件f =open('test.txt','w')f.write('this is my apple !!')f.close()f=open('test.txt','r')f.read(100) ##此时游标已经在文件末尾,需要f.seek(0)移动到文件开始,没否则f.read()会没有内容可以显示f.close()使用linecache打开文件import原创 2015-05-30 15:43:56 · 266 阅读 · 0 评论 -
自定义 with 方法
with 方法在开始时候会调用 __enter__(slf) 方法,离开的时候会调用 __exit__() 方法:>>> class sth(object):... def __enter__(slf):... print u'哈哈,进来啦'... def __exit__(slf,type,value,traceback):...原创 2015-05-30 15:45:23 · 363 阅读 · 0 评论 -
__all__=[]模块控制
在一个模块中,可以使用 __all__=['func_name1','func_name2','func_name3']来控制导入,当别人导入该模块的时候,from module import * 只会导入 __all__ 里面列出来的函数名,这些函数可以直接使用,而其他函数要用类名来使用。如果没有 __all__ 则会导入全部例如:#m1.py#coding=utf-8__a原创 2015-05-30 14:40:01 · 663 阅读 · 0 评论 -
dict字典
字典的键必须是不可变的数据类型,如 数字、字符串、元组 等创建字典: {} 或 dict()info={ 'name':'lilei' , 'age':20 }info=dict( name='lilei',age=20 )------------------------------------------------------------------------------原创 2015-05-30 15:26:26 · 452 阅读 · 0 评论 -
glob获得目录下文件
import globprint glob.glob(r'/home/chosan/桌面/*.txt')原创 2015-05-30 15:28:38 · 350 阅读 · 0 评论 -
len
>>> a='哈哈哈'>>> len(a) >>> 9因为unicode编码在python中占用3字节。此时可以进行转换>>> a=u'哈哈哈'>>> len(a)>>> 3或者已有一个字符串,可以如下转换:>>> g=a.decode('utf-8')>>> len(g)>>> 3如果在代码前面定义了 utf-8>>> #coding=utf-8>>>原创 2015-05-30 15:31:18 · 422 阅读 · 0 评论 -
list之key
>>> a=['1245','23','512425','12123','5512']>>> a.sort(key=int)>>> a['23', '1245', '5512', '12123', '512425']多级排序(该例会根据二三位进行排序):>>> a=[(1,2,3),(3,4,5),(0,1,2)]>>> import operator>>> a.sort(key原创 2015-05-30 15:31:46 · 314 阅读 · 0 评论 -
rang() & xrange()
range(100) 会创建一个列表对象,里面包含0~99xrange(100)相当于一个生成器,每次只会返回一个数据对象。当内存比较小,而处理的数据比较大的时候,可以选用xrange() 方法>>> a = xrange(0,100)>>> print a>>> xrange(0,100)>>> b = range(0,10)>>> print a >>> [0,1,2,3,原创 2015-05-30 15:36:48 · 465 阅读 · 0 评论 -
×× & × 参数魔法
参数为 ** 为字典,参数为 * 为列表。** 示例:>>> def doubleStars(**param):... return param... >>> a = doubleStars(a=1,b=2,c=3,d=4)>>> a{'a': 1, 'c': 3, 'b': 2, 'd': 4}* 示例:>>> def singleStar(*param):原创 2015-05-30 15:41:55 · 330 阅读 · 0 评论 -
创建包
创建一个文件夹,如命名为 m2首先,需要在该文件夹下面新建一个 __init__.py 的文件。然后可以在该文件夹下写其他 py 文件。需要用到的时候,import m2 会自动导入 __init__.py,,要用到其他文件(以url.py为例),可以使用import m2.url 或者 import m2.url as url也可以在包的 __init__.py 里面使用 __al原创 2015-05-30 15:40:55 · 285 阅读 · 0 评论 -
函数装饰@property等
class test(object): @property def func(slf): return 5 @staticmethod def fun(): return 10>>> t =test()>>> t.func5>>> test.fun()10原创 2015-05-30 15:42:09 · 312 阅读 · 0 评论 -
取词
取词有两种方法,一种是字符串切片>>> a='this is my apple!!'>>> print a[5:5+2]第二种是使用 split() 方法,先分割成列表,再取列表元素。取 "is" 操作如下:>>> a='this is my apple!!'>>> b=a.split(' ')>>> print b[1]原创 2015-05-30 15:42:52 · 480 阅读 · 0 评论 -
argv 参数列表
import sysprint sys.argv[0],sys.argv[1],sys.argv[2]x=raw_input("waiting")原创 2015-05-30 15:51:11 · 417 阅读 · 0 评论 -
自定义异常
继承自 Exception 类,拥有自己的 __init__() 方法:class myException(Exception): def __init__(slf,error,msg): slf.args = (error,msg) slf.error = error slf.msg = msgtry: raise myException(1,'my exception原创 2015-05-30 15:45:47 · 357 阅读 · 0 评论