读书笔记:简明python教程
这是一本很简单的python入门书,花1-2天的时间应该能大致掌握。
基础部分:
- P10:python语言写的程序不需要编译成二进制代码。可以直接从源码运行。在计算机内部,python解释去把源码转换成字节码的中间形式(可见的 .pyc 后缀文件)然后再把它翻译成计算机使用的机器语言并运行。
- P10:强大的标准库,以及其他高质量的库,如wxPython,Twisted,python图形库
- P20:echo $PATH
- P21:可以使用内建的help功能了解python函数或语句的快速信息帮助,注意“”的使用,如在查print时。
- P25:自然字符串:在字符串前加r或R表示不需要转义符那样的特殊处理。在处理文本文件时请用Unicode字符串,特别是这个文件含有用非英语的语言写的文本。
- P25:字符串是不可变。
- P26:在使用正则表达式时,一定要用自然字符串处理正则表达式。r或R的使用。
- P34:python中的运算符与用法,见表5.1,建议用圆括号来分组运算符和操作符
- P36:python的print会在变量间自动放入一个空格“漂亮的打印”
- P39:raw_input(),用来取得用户的输入信息
- P41:内建的range函数
- P44:控制流语句:if, while, for以及相关的contine和break
- P47:python也有局部变量的概念
- P47:!!global语句!!
- P48:函数的默认参数:准确的说,默认参数值应该是不可变的,并且只有在形参表末尾的那些参数可以有默认参数值。
- P51:DocString(文档字符串)
- DocString是一个重要的工具,它帮助我们的程序文档更加简单易懂,应尽量使用,甚至可以在程序运行的时候,从函数恢复文档字符串。
- 文档字符串的管理是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。强烈建议在函数中使用文档字符串时遵循这个惯例。
- 使用__doc__,查看
- 建议对任何缩写的正式函数编写文档字符串。
- P54:字节编译的.pyc文件:输入一个模块相对来说是一个比较费时的事情,所以python做了一些技巧,以便使输入模块更加快一些。一种方法是串讲字节编译的文件,这些文件以.pyc作为扩展名
- P56:模块的__name__,每个python模块都有它的__name__,如果它是"__main__",这说明这个模块被用户单独运行,我们可以进行相应的恰当操作。
- P58:dir()函数:列出模块定义的标识符,标识符有函数、类和变量。
- P60:python中有三种内建数据结构——列表、元组和字典
- python从0开始计数,而lua从1开始
- P62::元组
- 语法:(),元组和列表十分类似,只是元组和字符串一样是不可变的,即你不能修改元组。
- 最通常的用法:在打印语句中
- #!/usr/bin/python
- # Filename: print_tuple.py
- age = 22
- name = 'Swaroop'
- print '%s is %d years old' % (name, age)
- print 'Why is %s playing with that python?' % name
- P63:字典
- 键值对在字典中的标记方式:d={key1:value1, key2:value2},它们的键/值对用冒号分割,而各个对用都好分割,所有这些都在花括号中。
- 字典中的键值对是无顺序的。
- del语句用来删除键值对。
- in操作符来检验一个键值对是否存在。
- P64:序列的两个主要特点是索引操作符和切片操作符。
- P65:引用,当你创建一个对象并给它赋一个变量时,这个变量仅仅引用那个对象,而不是表示这个对象本身。也就是说变量名指向你计算机中存储那个对象的内存,这被称作名称到对象的绑定。
提升部分:
主要内容:
- 面向对象编程
- 关键字:
- self
- __init__ : 对象刚创建的时候调用, __del__: 对象消失的时候被调用,但是很难保证这个方法究竟什么时候运行,如果想指明它运行,就用del语句消除一个对象。
- python中所有类成员(包括数据成员)都是公共的,所有方法都是有效的。(双下划线前缀即变为私有,如果某个变量只想在类或对象中使用,用单下划线前缀)
- 继承
- 输入/输出
- file类,文件读写
- print语句会自动换行,可以使用逗号消除自动换行
- pickle:持久化存储对象。使用它可在一个文件中存储任何python对象,之后又可把它完整取出来。cPickle模块功能与pickle完全相同,只不过它用C语言编写
- 异常
- try ... except
- try.... except exceptType1..... except exceptType2....
- try ... except... finally
- raise语句引发异常:指明错误/异常的名称和伴随异常出发的异常对象。你可以引发的错误和异常应该分别是一个Error或Exception类的直接或间接导出类。
- python标准库
- OS
- os.name : 指示正在使用的平台
- os.getcwd()
- os.getenv() os.putenv() : 分别用来读取和设置环境变量
- os.listdir() : 返回指定目录下的所有文件和目录名
- os.remove():栓出一个文件
- os.system():运行shell命令
- os.linesep : 字符串给出当前平台使用的行终止符
- 更多python内容
- 类相关
- 如果想要类使用x[key]这样的索引操作(就像列表和元组),那么只需实现__getitem__()
- 列表综合
- listone = [2, 3, 4]
- listtwo = [2*i for i in listone if i > 2]
- 在函数中接受元组和列表
- 当要使函数接受元组货字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。
- 由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。若使用**前缀,多余的参数则会被认为是一个字典的键/值对
- lambda
- exec:执行存储在字符串货文件中的python语句
- eval:计算存储在字符串中的有效python表达式
- assert语句:用来声明某个条件是真的。
- repr函数:用来取得对象的规范字符串表示。
- 接下去要学的:
- python标准库:http://docs.python.org/python世界性
- 新闻组:comp.lang.python
- python cookbook:http://code.activestate.com/recipes/langs/python/
- 迷人的python:是David Mertz编著的一系列优秀的Python相关文章。
- 深入理解python:是给有经验的Python程序员的一本很优秀的书。
- JPython:是用Java语言实现的Python解释器。这意味着你可以用Python语言编写程序而同时使用Java库!Jython是一个稳定成熟的软件。如果你也是一个Java程序员,强烈建议你尝试一下Jython。
- IronPython是用C#语言实现的Python解释器,可以运行在.NET、Mono和DotGNU平台上。这意味着你可以用Python语言编写程序而使用.NET库以及其他由这三种平台提供的库!IronPython还只是一个前期alpha测试软件,现在还只适合用来进行试验。JimHugunin,IronPython的开发者,已经加入了微软公司,将在将来全力开发一个完整版本的IronPython。