【Python中的CRC16】教程文章相关的互联网学习教程文章

举例介绍Python中的25个隐藏特性

注:这里忽略了生成器,装饰器,交换变量等熟知技巧 1. 函数参数unpack 老生常谈的了:def foo(x, y):print x, yalist = [1, 2] adict = {x: 1, y: 2}foo(*alist) # 1, 2 foo(**adict) # 1, 2 2. 链式比较操作符>>> x = 3 >>> 1 < x < 5 True >>> 4 > x >=3 True 3. 注意函数的默认参数>>> def foo(x=[]): ... x.append(1) ... print x ... >>> foo() [1] >>> foo() [1, 1] 更安全的做法:>>> def foo(x=None): ... if x is Non...

Python中的赋值、浅拷贝、深拷贝介绍

和很多语言一样,Python中也分为简单赋值、浅拷贝、深拷贝这几种“拷贝”方式。 在学习过程中,一开始对浅拷贝理解很模糊。不过经过一系列的实验后,我发现对这三者的概念有了进一步的了解。 一、赋值 赋值算是这三种操作中最常见的了,我们通过一些例子来分析下赋值操作: str例代码如下: >>> a = hello >>> b = hello >>> c = a >>> [id(x) for x in a,b,c] [4404120000, 4404120000, 4404120000]由以上指令中,我们可以发现a, b...

python中的__slots__使用示例

正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:代码如下: >>> class Staff(object): ... pass ...然后,尝试给实例绑定一个属性:代码如下: >>> s = Staff() >>> s.name = jack >>> print s.name jack >>>还可以尝试给实例绑定一个方法:代码如下: >>> def set_age(self,age): ... self.age = age ... >>> from types import ...

Python中的装饰器用法详解

本文实例讲述了Python中的装饰器用法。分享给大家供大家参考。具体分析如下: 这里还是先由stackoverflow上面的一个问题引起吧,如果使用如下的代码:代码如下:@makebold @makeitalic def say():return "Hello" 打印出如下的输出: Hello 你会怎么做?最后给出的答案是:代码如下:def makebold(fn):def wrapped():return "" + fn() + ""return wrapped def makeitalic(fn):def wrapped():return "" + fn() + ""return wrapped @mak...

Python中的引用和拷贝浅析

If an object's value can be modified, the object is said to be mutable. If the value cannot be modified,the object is said to be immutable. mutable 可变类型,例如 list,set,自定义类型(等价于C#中的引用类型); immutable 不可变类型,例如string,numbers等(等价于C#中的值类型); 一、引用和拷贝(references and copies) 当程序中使用=赋值操作符时,例如a=b, 对于不可变的对象,a作为b的一个拷贝被创建,a和...

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), ...

Python中的异常处理学习笔记

Python 是面向对象的语言,所以程序抛出的异常也是类。 常见的异常类 1.NameError:尝试访问一个没有申明的变量 2.ZeroDivisionError:除数为 0 3.SyntaxError:语法错误 4.IndexError:索引超出序列范围 5.KeyError:请求一个不存在的字典关键字 6.IOError:输入输出错误(比如你要读的文件不存在) 7.AttributeError:尝试访问未知的对象属性 8.TypeError:传给函数的参数类型不正确,比如给 int 函数传入字符型 自定义异常类 尽...

Python中的作用域规则详解

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

Python中的迭代器漫谈

问题是在Python中进行循环的时候产生的,熟悉Python的都知道,它没有类似其它语言中的for循环, 只能通过for in的方式进行循环遍历。最典型的应用就是通过range函数产生一个列表,然后用for in进行操作,如下:代码如下: #!/usr/bin/env python for i in range(10):print i代码的意义很好理解,range会产生一个列表,用for in最这个列表进行遍历,就有和类似for(i = 0;i<n;i++)同样的效果,range函数的详解可以看这里。问题又来了,r...

理解Python中的With语句

With语句是什么? 有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。 如果不用with语句,代码如下:代码如下: file = open("/tmp/foo.txt") data = file.read() file.close()这里有两个问题。一是可能忘记关闭文件句柄;二是文件读取数据发生异常,没有进行任何处理。下面是处...

Python中的pprint折腾记

1.背景 看到这里提到了pprint。 打算去试试. 2.pprint简介 找到在线官网解释: pprint — Data pretty printer 就是一个,方便大家打印一些,相对复杂的变量的好东西。 3.使用pprint 去写点代码试试。代码:代码如下: #------------------------------------------------------------------------------- # Name: 【记录】折腾Python中的pprint # Author: Crifan Li # # Created: 06/01/2013 # Copyright: (c)...

Python中的True,False条件判断实例分析

本文实例讲述了Python中的True,False条件判断用法。分享给大家供大家参考。具体分析如下: 对于有编程经验的程序员们都知道条件语句的写法: 以C++为例:代码如下:if (condition) { doSomething(); } 对于Python中的条件判断语句的写法则是下面的样子:代码如下:if (condition): doSomething() 那么对于条件语句中的condition什么时候为真什么时候为假呢? 在C++/Java等高级语言中,如果条件的值为0或者引用的对象为空指针,...

Python中的包和模块实例

一、实例和结果 1)实例的结构和具体的文件:代码如下: PyPackage │ PyCommonM.py │ __init__.py │ ├─p1Package │ P1M.py │ P1MC.py │ __init__.py │ └─p2P2.pyP2M.py2)PyCommonM.py代码如下: def PyCommonMF(): print "PyCommonMF"3) P1M.py:代码如下: def P1MF(): print P1MF4)P1MC.py:代码如下: class P1MC(): @staticmethoddef P1MCF(): print P1MCF5)P2M.py:代码如下: def P2MF(): print ...

Python中的生成器和yield详细介绍

列表推导与生成器表达式 当我们创建了一个列表的时候,就创建了一个可以迭代的对象:代码如下: >>> squares=[n*n for n in range(3)] >>> for i in squares:print i 0 1 4这种创建列表的操作很常见,称为列表推导。但是像列表这样的迭代器,比如str、file等,虽然用起来很方便,但有一点,它们是储存在内存中的,如果值很大,会很麻烦。 而生成器表达式不同,它执行的计算与列表包含相同,但会迭代的生成结果。它的语法与列表推导一...

Python中的闭包详细介绍和实例

一、闭包 来自wiki: 闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。 在一些语言中,在函数中定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭包就形成了,闭包中包含了...