
Python
Warren_Hoo
个人博客已迁往http://coredumper.cn/
展开
-
Python的对象和类型
Python使用对象来存储数据,构造任何类型的值都是一个对象。任何一个对象都有三个特性:身份,类型和值。身份是对象的唯一标识,可以通过内建函数id()得到,这个值可以认为是该对象的内存地址。Python的类型如下:标准类型:整型 int布尔型 bool长整型 long浮原创 2013-09-09 14:30:03 · 1164 阅读 · 0 评论 -
Python的浅拷贝和深拷贝
浅拷贝对一个列表通过完整切片操作或者内建函数list()进行的拷贝属于浅拷贝,考虑如下代码:L0 = [1, [2, 3]]L1 = L0[:]L2 = list(L0)r0 = [id(x) for x in (L0, L1 L2)]r1 = [id(x) for x in L0]r2 = [id(x) for x in L1]r3 = [id(x) for x in L2]原创 2013-09-11 22:29:32 · 1080 阅读 · 0 评论 -
Python的raw_input()和input()
内建函数raw_input()和input()的区别如下:raw_input()以字符串的形式返回用户的输入,input()把用户的输入作为表达式进行求值并返回该值。原创 2013-09-21 16:53:26 · 1748 阅读 · 0 评论 -
Python的str()和repr()
函数str()和repr()的功能相似,都可以接受任意类型的对象,将其转换为字符串类型的对象,但二者还是有一些细微的差别,下面举例说明。str(1.0/3.0)得到的结果为'0.333333333333'repr(1.0/3.0)得到的结果为'0.33333333333333331'print str('abc')得到的结果为abcprint repr('abc')得到原创 2013-09-21 17:35:09 · 1072 阅读 · 0 评论 -
Python小贴士之赋值语句、分支语句和循环语句
用内建函数cmp(a, b)比较两个对象a和b的大小时,当a>b时,返回一个正数(通常为1,但某些特殊对象的比较不是1),当aPython中的else除了可以与if一起使用之外,还可以与while、for和try-except一起使用,当else与while或者for一起使用时,仅当循环正常结束,即不是通过break跳出循环时,才会执行else内的程序块。原创 2013-09-21 18:13:20 · 1692 阅读 · 0 评论 -
Python小贴士之类
当定义一个类时,如果这个类没有任何父类,则将object设置为它的父类,用这种方式定义的类属于新式类。如果定义的类没有设置任何父类,则这种方式定义的类属于经典类。建议使用新式类,新式类将类与内建类型进行了统一。新式类与经典类在多重继承问题中有一个重要的区别:对于经典类,继承顺序是采用深度优先的搜素算法,对于新式类,继承顺序是采用广度优先的搜素算法。考虑如下新式类的实例:class P1(o原创 2013-09-21 18:21:54 · 1072 阅读 · 0 评论 -
Python小贴士之异常
通过for循环遍历列表的过程中不要做删除操作,例如:L = [1, 2, 3]for i in range(len(L)): print L[i], del L[i]上述代码在打印出1 3之后就会报错,这是因为当删除列表中的元素后,列表的大小以及列表中剩余元素的索引都会随之发生改变,而range(len(L))的值一直都是[0, 1, 2]。所以如果想通过循环原创 2013-09-21 18:23:57 · 1153 阅读 · 0 评论 -
Python的print用法
Python 2.6中print不是函数,而是一个关键字,使用方式如下:print 1, 2 print 'a', 'b' 显示结果如下,用逗号分隔的各项之间会打印出一个空格,默认以换行结束:1 2 a b 若不想以换行结束,则在最后加一个“,”,如下所示:print 1, 2, print 'a', 'b' 显示结果如下:1 2 a b Python 3.0原创 2014-02-07 17:38:25 · 1445 阅读 · 0 评论 -
Python在函数中使用全局变量的问题
在函数中定义的局部变量如果和全局变量同名,则它会隐藏该全局变量。如果想在函数中使用全局变量,则需要使用global进行声明。举例说明如下:x = 1def func(): x = 2 print xprint xfunc()print x执行结果为:121x = 1def func(): global x pr原创 2014-02-08 16:49:36 · 11315 阅读 · 0 评论 -
Python小贴士之模块
用import导入模块时,模块名是Python文件名去掉后缀.py。当导入模块时,该模块内的程序会被执行,但是只有第一次导入时执行,如果后面重复导入,则不会再执行,若要重复执行,可调用内建函数reload()。如果希望Python文件中的某段程序在该文件被当作模块导入时不被执行,则可以把这段程序放在下面的if语句内:if __name__ == '__main__':原创 2014-02-10 11:51:38 · 1012 阅读 · 0 评论 -
Python之分片操作
为了避免出错,尽量不要在分片时同时使用非负数索引和负数索引针对字符串s = 'abc',s[x:y:z]得到的是s[x],s[x+z],s[x+2*z],...,s[y](不包括s[y])组成的字符串以下两种方式均可得到'abc's[:]s[0:3]以下两种方式均可得到'cba's[::-1]s[-1:-4:-1]原创 2014-02-10 18:07:22 · 1684 阅读 · 0 评论 -
Python的变量赋值及函数参数传递规则
交换两个变量的值可以通过元组赋值的方式直接交换:(x, y) = (y, x)原创 2013-09-08 10:38:17 · 4607 阅读 · 0 评论 -
Python小贴士之数字、字符串、字典、集合、元组
交换两个变量的值可以通过元组赋值的方式直接交换:(x, y) = (y, x)缩进方式最好采用4个空格,不要采用Tab,因为不同的文本编辑器对Tab的设置不同。原创 2013-09-08 14:19:08 · 1316 阅读 · 0 评论