随笔分类 -  Python

记录Python的学习历程
Python: dist-packages和site-packages的区别
摘要:http://www.cnblogs.com/kevin922/p/3161411.htmlhttp://www.douban.com/note/163739375/ 阅读全文

posted @ 2013-12-29 00:17 frydsh 阅读(1690) 评论(0) 推荐(0)

Python天天美味(13) - struct.unpack
摘要:转载自:http://www.cnblogs.com/coderzh/archive/2008/05/04/1181462.htmlPython中按一定的格式取出某字符串中的子字符串,使用struck.unpack是非常高效的。1. 设置fomat格式,如下:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#取前5个字符,跳过4个字符,再取3个字符format='5s4x3s'2. 使用struck.unpack获取子字符串C 阅读全文

posted @ 2013-09-03 13:18 frydsh 阅读(518) 评论(0) 推荐(0)

Python是编译运行的
摘要:虽然Python被说成是一种解释型语言,但是实际上,Python源程序要先经过编译,然后才能运行。 与Java语言类似,Python源程序编译之后得到的是字节码,交由Python虚拟机来运行。 关于这一点,我们可以这样来验证:#!/usr/bin/pythonprint "position1"1_syntax_error_identifierprint "position2" 将它保存为program.py,然后在shell窗口中运行它:root@dell:~$ ./program.py File "./program.py", li 阅读全文

posted @ 2013-08-09 22:58 frydsh 阅读(3095) 评论(0) 推荐(0)

Python 新手常犯错误(第二部分)
摘要:转发自:http://blog.jobbole.com/43826/在之前几个月里,我教一些不了解Python的孩子来慢慢熟悉这门语言。渐渐地,我发现了一些几乎所有Python初学者都会犯的错误,所以我决定跟来跟大家分享我的建议。这个系列的每个部分都会关注不同的常见错误,描述如何产生这种错误的,并且提供解决的方法。本文是第二部分。作用域在这篇文章里,我们来关注作用域在Python被误用的地方。通常,当我们定义了一个全局变量(好吧,我这样说是因为讲解的需要——全局变量是不好的),我们用一个函数访问它们是能被Python理解的:123bar = 42def foo():print bar在这里,我 阅读全文

posted @ 2013-07-22 20:49 frydsh 阅读(1349) 评论(0) 推荐(1)

在Python中,令values=[0,1,2];values[1]=values,为何结果是[0,[...],2]?
摘要:转载自:http://www.zhihu.com/question/21000872/answer/16856382>>> values = [0, 1, 2]>>> values[1] = values>>> values[0, [...], 2]我预想应当是[0, [0, 1, 2], 2]为何要赋值无限次?Python 没有赋值,只有引用。你这样相当于创建了一个引用自身的结构,所以导致了无限循环。为了理解这个问题,有个基本概念需要搞清楚。Python 没有「变量」,我们平时所说的变量其实只是「标签」。执行values = [0, 1, 阅读全文

posted @ 2013-07-20 12:08 frydsh 阅读(2060) 评论(0) 推荐(1)

Python的类实例属性访问规则
摘要:一般来说,在Python中,类实例属性的访问规则算是比较直观的。 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此。 在这里,我们需要明白以下几个地方: 1.Python是一门动态语言,任何实体都可以动态地添加或删除属性。 2.一个类定义了一个作用域。 3.类实例也引入了一个作用域,这与相应类定义的作用域不同。 4.在类实例中查找属性的时候,首先在实例自己的作用域中查找,如果没有找到,则再在类定义的作用域中查找。 5.在对类实例属性进行赋值的时候,实际上会在类实例定义的作用域中添加一个属性(如果还不存在的话),并不会影响到相应类... 阅读全文

posted @ 2013-07-18 01:04 frydsh 阅读(6476) 评论(4) 推荐(0)

Python 新手常犯错误(第一部分)
摘要:转载自:http://blog.jobbole.com/42706/在之前几个月里,我教一些不了解Python的孩子来慢慢熟悉这门语言。渐渐地,我发现了一些几乎所有Python初学者都会犯的错误,所以我决定跟来跟大家分享我的建议。这个系列的每个部分都会关注不同的常见错误,描述如何产生这种错误的,并且提供解决的方法。用一个可变的值作为默认值这是一个绝对值得放在第一个来说的问题。不仅仅是因为产生这种BUG的原因很微妙,而且这种问题也很难检查出来。思考一下下面的代码片段:def foo(numbers=[]): numbers.append(9) print numbers在这里,我们定... 阅读全文

posted @ 2013-07-09 23:02 frydsh 阅读(940) 评论(3) 推荐(2)

Python的作用域
摘要:Python是静态作用域语言,尽管它自身是一个动态语言。也就是说,在Python中变量的作用域是由它在源代码中的位置决定的,这与C有些相似,但是Python与C在作用域方面的差异还是非常明显的。 接下来会谈论Python的作用域规则,在这中间也会说明一下Python与C在作用域方面的不同。 在Python 2.0及之前的版本中,Python只支持3种作用域,即局部作用域,全局作用域,内置作用域;在Python 2.2中,Python正式引入了一种新的作用域 --- 嵌套作用域;在Python 2.1中,嵌套作用域可以作为一个选项被开启;嵌套作用域的引入,本质上为Python实现了对闭包... 阅读全文

posted @ 2012-08-12 17:58 frydsh 阅读(32377) 评论(5) 推荐(8)

Python源代码文件的文本编码
摘要:源代码的编码问题对于任何语言的源文件都是存在的,只不过对于脚本语言,这个问题更突出一些。有的人可能会说,既然源代码在文本编辑器中可以正常显示,说明编码没有问题,编辑器可以识别它,为什么Python还要求声明源代码的编码呢?这是因为,明确地声明编码可以简化Python解释器的实现,免得它去猜测源文件的编码,这样既会增加解释器的复杂性,也会减慢程序的执行速度(毕竟是解释执行)。况且,程序运行必须是精确的,不能靠猜测。从Python 2.3开始,可以在Python源文件中明确地声明字符编码,默认是7-bit ASCII编码。字符编码声明是以在源文件第一行或者第二行出现的一个魔法注释来实现的:# co 阅读全文

posted @ 2012-07-22 01:46 frydsh 阅读(3923) 评论(0) 推荐(0)

Python的词法分析与语法分析
摘要:词法分析(Lexical Analysis):分析由字符组成的单词是否合法,如果没有问题的话,则产生一个单词流。语法分析(SyntacticAnalysis):分析由单词组成的句子是否合法,如果没有问题的话,则产生一个语法树。在词法分析器分析源代码文本的时候,有一个概念需要明确:1.物理行:由回车字符序列(在Windows上是CR LF,在Unix上是LF)结尾的字符序列组成一个物理行。2.逻辑行:由一个或者多个物理行组成,可以明确地使用反斜杠(\)来连接多个物理行使之成为一个逻辑行;或者,处在圆括号,中括号,花括号内的表达式可以跨越多个物理行,但是被当作一个逻辑行。词法分析器是面向逻辑行的, 阅读全文

posted @ 2012-07-15 17:20 frydsh 阅读(13044) 评论(0) 推荐(0)

Python的几种实现
摘要:Python自身作为一门编程语言,它有多种实现。这里的实现指的是符合Python语言规范的Python解释程序以及标准库等。这些实现虽然实现的是同一种语言,但是彼此之间,特别是与CPython之间还是有些差别的。下面分别列出几个主要的实现。1.CPython:这是Python的官方版本,使用C语言实现,使用最为广泛,新的语言特性一般也最先出现在这里。 CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。2.Jython:这是Python的Java实现,相比于CPython,它与Java语言之间的互操作性要远远高于CPython和C语言之间的互 阅读全文

posted @ 2012-07-12 23:15 frydsh 阅读(12834) 评论(1) 推荐(0)

Python的Boolean操作
摘要:在Python中,任何类型的对象都可以做真值测试,并且保证返回True或者False。以下几种值(不论类型)在真值测试中返回False:1.None2.False3.任何类型的数字0,包括0,0.0,0L,0j4.空的序列(sequence)或者映射(mapping)类型对象5.对于用户自定义类型的对象,如果其类定义了__nonzero__()或者__len__()特殊方法并且返回False或者0对于最后一条规则,有几点需要说明:1.如果类没有定义这两个方法中的任何一个,则这种类型的对象真值测试时总是为True2.如果类同时定义了__nonzero__()和__len__(),只会参考__no 阅读全文

posted @ 2012-07-11 13:59 frydsh 阅读(33062) 评论(0) 推荐(1)

Python的zip函数
摘要:zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:1.示例1:x = [1, 2, 3]y = [4, 5, 6]z = [7, 8, 9]xyz = zip(x, y, z)print xyz运行的结果是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]从这个结果可以看出zip函数的基本运作方式。2.示例2:x = [1, 2, 3]y = [4, 5, 6, 7]xy = zip(x, y)print xy运行的结果是:[(1, 4), (2, 5), (3, 6)]从这个结果可以看出zip函数的长度处理方 阅读全文

posted @ 2012-07-10 22:12 frydsh 阅读(242090) 评论(15) 推荐(57)

导航