Python_ Dive Into Python 5.4_ Notes


Python 和其他编程语言数据类型的比较
静态类型定义语言
一种在编译期间数据类型固定的语言。大多数静态类型定义语言是通过要求在使用所有变量之前声明它们的数据类型来保证这一点的。 Java 和 C 是静态类型定义语言。
动态类型定义语言
一种在运行期间才去确定数据类型的语言, 与静态类型定义相反。 VBScript 和 Python 是动态类型定义的, 因为它们确定一个变量的类型是在您第一次给它赋值的时候。
强类型定义语言
一种总是强制类型定义的语言。
Java 和 Python 是强制类型定义的。您有一个整数, 如果不明确地进行转换 , 不能将把它当成一个字符串。
弱类型定义语言
一种类型可以被忽略的语言, 与强类型定义相反。
VBScript 是弱类型定义的。在 VBScript 中, 您可以将字符串 '12' 和整数 3 进行连接得到字符串'123', 然后可以把它看成整数
123 , 所有这些都不需要任何的显示转换。
所以说 Python 既是 动态类型定义语言 (因为它不使用显示数据类型声明) , 又是 强类型定义语言 (因为一旦一个变量具有一个数据类型,
它实际上就一直是这个类型了) 。
三重引号表示一个多行字符串
给出一个 doc
string (文档字符串) 文档化一个 Python 函数

模块导入的搜索路径
>>> import sys                 


  
  
  
  
  
  
  
  
  
  
  
  




>>> sys.path                  

['', '/usr/local/lib/python2.2',
'/usr/local/lib/python2.2/plat-linux2',
'/usr/local/lib/python2.2/lib-dynload',
'/usr/local/lib/python2.2/site-packages',
'/usr/local/lib/python2.2/site-packages/PIL',
'/usr/local/lib/python2.2/site-packages/piddle']
>>> sys                        

>>> sys.path.append('/my/new/path')


  
  

  
  
  导入 sys 模块, 使得它的所有函数和属性都有效。
  


  
  

  
  
  sys.path 是一个组成当前搜索路径的目录列表。 (您的输出结果可能有所不同, 这取决于您的操作系统, 正在运行的
  Python 版本, 和初始安装的位置。) Python 将搜索这些目录 (按顺序) 来查找一个与您正试着导入的模块名相匹配的 .py 文件。
  


  
  

  
  
  实际上, 我没说实话。真实情况要比这更复杂, 因为不是所有的模块都保存为 .py 文件。有一些, 像 sys 模块,
  是"内置模块", 它们实际上是置于 Python 内部的。内置模块的行为如同一般的模块, 但是它们的 Python 源代码是不可用的,
  因为它们不是用 Python 写的! ( sys 模块是用 C 写的。)
  


  
  

  
  
  在运行时, 通过向 sys.path 追加目录名, 就可以在 Python 的搜索路径中增加新的目录, 然后一旦您试着导入模块,
  Python 也会在那个目录中进行搜索。
  

在 Python 中, 定义是松散的;某些对象既没有属性也没有方法, 而且不是所有的对象都可以子类化。但是万物皆对象从感性上可以解释为:一切都可以赋值给变量或作为参数传递给函数。
也可以在一个 dictionary 中混用和配匹 key 的数据类型???
Dictionary 无序
大括号
List 有序
方括号
Tuple 有序
小括号
Tuple 是不可变 list
负数索引从 list 的尾部开始向前计数来存取元素。任何一个非空的 list 最后一个元素总是 li[-1]。
list = list + otherlist 相当于 list.extend(otherlist)。

+ 运算符把一个新 (连接后) 的 list 作为值返回, 而
extend 只修改存在的 list。
也就是说, 对于大型 list 来说, extend 的执行速度要快一些。
tuple 冻结一个 list, 而
list 解冻一个 tuple
Tuples 可以在 dictionary 中被用做 key, 但是 list 不行
当一条命令用续行符 (“\”)
分割成多行时, 后续的行可以以任何方式缩进
Python 中,参数可以通过名称以任意顺序指定。
调用函数时唯一需要做的事情就是为每一个必备参数指定值(以某种方式);以何种具体的方式和顺序都取决于你。
Python 提供了很多出色的参考手册,你应该好好的精读一下所有 Python 提供的必备模块
getattr 是一个有用到令人无法致信的内置函数,可以返回任何对象的任何属性
to be cont'