Python初学笔记(1)——基于《Dive Into Python》5.4b版本pdf
2012-05-20 23:23
459 查看
Python 扮演着两种角色。首先它是一个脚本解释器,可以从命令行运行Python脚本程序;它还是一个交互 shell,可以执行任意的Python语句和表达式。这一点对调试、快速组建和测试相当有用
Python 不需要指定函数返回值的数据类型;甚至不需要指定函数是否有返回值。实际上,每个 Python 函数都返回一个值;如果函数执行过 return 语句,它将返回指定的值,否则将返回 None
不光是Python函数,在 Python 中,永远也不需要明确指定任何东西的数据类型,Python 会根据赋给它的值在内部将其数据类型记录下来
根据对数据类型的处理机制,编程语言有以下几种分类:
静态类型语言——在编译期间就确定数据类型的语言。大多数静态类型语言是通过要求在使用任一变量之前声明其数据类型来保证这一点的,例如Java,C系列
动态类型语言——在运行期间才去确定数据类型的语言,例如VBScript 和 Python,因为它们确定一个变量的类型是在您第一次给它赋值的时候
强类型语言——总是强制类型定义的语言,例如您有一个整数,如果不明确地进行转换,不能将把它当成一个字符串。Java,C,Python都是强类型语言
弱类型语言——类型可以被忽略的语言,例如VBScript
因此Python既是动态类型语言 又是强类型语言
Python 中 import moduleName
语句将会引入一个Python模块,其中模块名参数指定的.py文件的搜索路径为 sys.path 变量中指定的所有目录,因此当需要添加一个新的模块/库搜索路径是,需要在import之前首先调用sys.path.append('/my/new/path') 来进行路径扩展
在 Python 中万物皆对象:字符串是对象,列表是对象,函数是对象,甚至模块也是对象……
在 Python 中,对象的定义是松散的,某些对象既没有属性也没有方法,而且不是所有的对象都可以子类化。但是万物皆对象从感性上可以解释为:一切都可以赋值给变量或作为参数传递给函数
每一个Python函数作为对象,都包含了一个 doc string 属性,用于描述该函数的功能特性,当在函数定义中使用三重引号"""Function description string""" 作为该函数要定义的第一个内容 (这是必须的要求,即在冒号后面的第一个内容) 时,该函数对象的 doc string 属性的值就是该字符串,通过调用print
module.func.__doc__语句,即可打印出该函数的说明字符串
Python 函数没有类似于C和Java那样标明函数的开始和结束的花括号,唯一的分隔符是一个冒号 (:),表明紧接着的就是函数体代码。同样的,对于if,for,while这样的代码块也没有表明开始和结束的花括号,代码块都是通过它们的缩进来定义的,开始缩进表示块的开始,取消缩进表示块的结束
Python模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的__name__ 的值取决于您如何应用该模块。
如果 import 模块,那么 __name__ 的值通常为模块的文件名,不带路径或者文件扩展名。
但是您也可以像一个标准的程序一样直接运行模块,在这种情况下 __name__ 的值将是一个特别的缺省值,__main__,即此时 __name__ == __main__ 成立
因此一个模块的module.py文件中常有形如
if __name__ == "__main__":
……
这样的代码块,当直接使用 python module.py 执行该模块时,本代码块就将被调用,而如果使用 importmodule.py 引入该模块,则改代码块不会被执行,所以该代码块常用于进行模块的测试工作。
Python 不需要指定函数返回值的数据类型;甚至不需要指定函数是否有返回值。实际上,每个 Python 函数都返回一个值;如果函数执行过 return 语句,它将返回指定的值,否则将返回 None
不光是Python函数,在 Python 中,永远也不需要明确指定任何东西的数据类型,Python 会根据赋给它的值在内部将其数据类型记录下来
根据对数据类型的处理机制,编程语言有以下几种分类:
静态类型语言——在编译期间就确定数据类型的语言。大多数静态类型语言是通过要求在使用任一变量之前声明其数据类型来保证这一点的,例如Java,C系列
动态类型语言——在运行期间才去确定数据类型的语言,例如VBScript 和 Python,因为它们确定一个变量的类型是在您第一次给它赋值的时候
强类型语言——总是强制类型定义的语言,例如您有一个整数,如果不明确地进行转换,不能将把它当成一个字符串。Java,C,Python都是强类型语言
弱类型语言——类型可以被忽略的语言,例如VBScript
因此Python既是动态类型语言 又是强类型语言
Python 中 import moduleName
语句将会引入一个Python模块,其中模块名参数指定的.py文件的搜索路径为 sys.path 变量中指定的所有目录,因此当需要添加一个新的模块/库搜索路径是,需要在import之前首先调用sys.path.append('/my/new/path') 来进行路径扩展
在 Python 中万物皆对象:字符串是对象,列表是对象,函数是对象,甚至模块也是对象……
在 Python 中,对象的定义是松散的,某些对象既没有属性也没有方法,而且不是所有的对象都可以子类化。但是万物皆对象从感性上可以解释为:一切都可以赋值给变量或作为参数传递给函数
每一个Python函数作为对象,都包含了一个 doc string 属性,用于描述该函数的功能特性,当在函数定义中使用三重引号"""Function description string""" 作为该函数要定义的第一个内容 (这是必须的要求,即在冒号后面的第一个内容) 时,该函数对象的 doc string 属性的值就是该字符串,通过调用print
module.func.__doc__语句,即可打印出该函数的说明字符串
Python 函数没有类似于C和Java那样标明函数的开始和结束的花括号,唯一的分隔符是一个冒号 (:),表明紧接着的就是函数体代码。同样的,对于if,for,while这样的代码块也没有表明开始和结束的花括号,代码块都是通过它们的缩进来定义的,开始缩进表示块的开始,取消缩进表示块的结束
Python模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的__name__ 的值取决于您如何应用该模块。
如果 import 模块,那么 __name__ 的值通常为模块的文件名,不带路径或者文件扩展名。
但是您也可以像一个标准的程序一样直接运行模块,在这种情况下 __name__ 的值将是一个特别的缺省值,__main__,即此时 __name__ == __main__ 成立
因此一个模块的module.py文件中常有形如
if __name__ == "__main__":
……
这样的代码块,当直接使用 python module.py 执行该模块时,本代码块就将被调用,而如果使用 importmodule.py 引入该模块,则改代码块不会被执行,所以该代码块常用于进行模块的测试工作。
相关文章推荐
- 开始攻克下一本电子书PDF--Dive Into Python by Mark Pilgrim
- 《Dive Into Python》笔记:关于字典和列表
- dive into python -- 笔记
- 《Dive Into Python》笔记:关于元组与字符串
- Dive into python第四章自省的威力笔记
- 《Dive into python》 学习笔记 CH1-CH4
- Python 研究(Dive Into Python)笔记2--第3章 内置数据类型
- Dive into python 第5和6章面向对象学习笔记
- Python 研究(Dive Into Python)笔记1--第2章 第一个 Python 程序
- Dive into Python
- 【和我一起学python吧】初学Python,版本如何选择?
- python初学笔记(三)
- learn python, ref, diveintopython
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP
- a byte of python初学笔记 002
- 【Python_OpenCv】笔记3:基于python,OPenCv中基本的绘图函数
- 【Python_OpenCv】笔记5:基于python和OPenCv的ROI区域的设置
- 初学Python的一些笔记----list、tuple等
- python初学笔记(二)---实例学python
- Python 初学笔记:逻辑门练习