a byte of python note
特点:
简单易学;自由开源;高级解释型语言;可移植性;面向对象;可扩展;可嵌入;广泛的库支持。
简单易学却又无比强大,似乎不太符合逻辑。但不管怎么着,就像只有与一个人打交道才能了解一个人一样,既然选择了python,那就在学和用中去体会这门语言的特点吧。
基础:
1)字面常量,其值不可改变,就代表它自己。
2)数,有四种类型:整数,长整数,浮点数和复数。
3)字符串
3-1)引号:单双引号意义一样;三引号可以指定多行字符串,而且可以穿插单双引号。
3-2)转义字符:在一些字符前加back slash可以构造特殊含义的字符。
3-3)纯字符串,如果在字符串放在引号中前加r或R则是纯字符串,不转义。
3-4)不可修改,字符串不可修改。
3-5)字符串连接,自动连接两个相邻的字符串。
4)变量
4-1)定义,内存中的一个片段,给它来个名字,就是变量
4-2)命名规则,有字母,数字和下划线组成,不能以数字开头,区分大小写
5)强制缩进,python要求强制缩进
操作符和表达式
1)操作符
1-1)操作符及用法,http://www.ibiblio.org/swaroopch/byteofpython/read/operators.html#id3055069
1-2)操作符优先级,http://www.ibiblio.org/swaroopch/byteofpython/read/operator-precedence.html#id3056064
1-3)表达式由操作数和操作符组成
流控制
1)if语句,if expr: … elif expr: … else: …
2)while语句,while expr: … else: …
3)for语句,for expr: … else: …
4)break语句,用于循环中来中断循环,执行下面的语句。
5)continue语句,跳过当前的这一次循环,继续下次循环。
函数
1)含义,就是一小段预定义的程序,可以在其他地方调用它,代码重用的方式之一。
2)函数参数,传递给函数的变量,函数内部可以处理这些变量。
3)局部变量,在函数内部定义的变量只在函数内生效,函数执行完,变量对应的内存释放,即使函数内外的变量名一样。
4)默认参数值,在定义形参的时候给它指定个值,这个值就是默认值。
5)关键字参数,直接通过关键值来给参数指定值,其优势在于可以不管参数顺序直接通过关键字来传递参数,这实际上是一种字典数据结构。
6)函数返回值由return来指定,pass表示没有语句执行。
7)DocStrings,是在函数中加入文档说明,便于以后理解。
模块
1)含义,代码重用的另一种方式,重用其他一系列的函数或变量,注意其他程序文件扩展名必须是py。
2)为了执行的高效,通常将py文件编译为字节码文件,扩展名是pyc。
3)尽量避免使用from … import …
4)__name__变量用于判断模块是自己运行还是被其他程序调用执行。
5)其实模块就是一个程序,只是它只有定义部分没有执行部分。
6)dir方法可以列出当前模块中定义的所有标识符,包括变量和函数
数据结构
1)含义,组织数据的方式。
2)列表(list)用于有序的存放一组项目;格式如下[,];用list[n]来检索list中的值。
3)元组(tuple)和列表的区别是元组不可修改。
4)通过元组来传递变量,print语句要输出多个变量时,通常先把他们放到元组中再传递给print。
5)字典(dictionary)就像一个地址本,用关键值来获取对应的值。
6)序列(sequence),包括列表,元组和字符串;通过索引操作获取序列中的项目;通过切片(slice)操作符来获取序列的部分项目。
7)参考(reference)类似链接,变量仅是对象的连接,修改了对象所有链接到该对象的变量都会改变,所以直接赋值有时候会有问题,解决方法是用切片操作符来复制对象。
面向对象编程
1)术语
1-1)类和对象,类创建了一种新的类型,对象是类的一个实例。
1-2)区域,在一个类或实例中的变量叫区域,又分两种类变量和实例变量。
1-3)方法,在一个类中的函数叫方法。
1-4)属性,区域和方法的统称。
2)self,类的方法与普通函数的区别是类的方法第一个参数是self,这个特别的参数是指对象本身。
3)__init__方法和__del__方法,两个特殊的方法,一个是在创建对象时执行,一个是对象释放前执行。
4)继承,代码重用的另一种方式;就是父类和子类的关系,修改父类的属性子类也会跟随改变,但修改子类的属性不会影响到父类和其他子类。
5)多态,一个子类在任何需要父类的场合都可以被替换成父类,也就是子类的对象可以被当作父类的对象,这种现象叫多态。
Input和Output
异常
1)异常发生在程序出错的情况
2)用try … except语句来处理异常
3)用raise引发异常,但要注意要指明异常或错误的类名称和对象,可以引发的错误和异常是Error和Exception类直接或间接导出的类
4)用try … finally来处理发生异常后要执行的操作
标准库
Principle
- writing a single logical line in a single physical line only
哈哈,最近怎么样啊,顺利否?
还可以,挺忙挺充实的。