python入门

  1. #为注释,#!/usr/bin/python被称作组织行—源文件的头两个字符是#!,后面跟着一个程序。这行告诉你的Linux/Unix系统当你执行的程序应该运行哪个解释器。当然可以在命令行指定编译器。
  2. 字符串有三种表示:’,’’,’’’(为多行字符串,表示有多行,输出也是多行);‘\’可以表示第二行还有内容,但不是分行,输出还是同一行(\后有TAB,作为字符串的时候不会加);在字符串前面加R/r可以原样输出;两个字符串相邻摆放就会自动连接
  3. 基本的数据类型就是数(整数,长整数,浮点数,复数)和字符串
  4. 使用变量的时候只需要给他赋值,不需要声明
  5. python可以用分号,但是建议一个逻辑行对应一个物理行(于是不用分号),当逻辑行需要多个物理行表示的时候可以用“\”来进行行连接
  6. 缩进:python里面不能进行乱缩进即逻辑句开头不能有空符号
  7. python中运算符特别的‘**’表示幂运算;“//”为求整运算,即4//3.0=1.0;布尔非,与,或分别用not,and,or
  8. print 'xxx yy',ab就会输出xxx yy ab;字符串与变量之间的空格就不需要考虑
  9. if…elif..else:python没有大括号故依据缩进以及语句后的“:”,没有switch,用if语句进行替代;for:for.1.in.2.;1是一个中间变量,2是一个序列如range(0,5)(步长为1;range(x,y,step)即可指定步长,<y)
  10. break:可以跳出for,while(包括他们结束时的else)
  11. 函数通过def关键字定义。def关键字后跟一个函数的标识符名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。
  12. 函数内的参数将会覆盖全局的参数或者形参,但不会修改全局参数本身的值;使用global就可以指定使用外部声明的变量,即使用全局变量前调用global x,y,而后使用的就是全局的x,y,即对应的修改影响全局
  13. 申明默认参数值用“=”,并且要求是末尾参数
  14. 关键参数:即在调用函数的时候,对指定的形参名赋值,以避免赋值顺序的约束,例如func(a,b,c),那么调用的时候可以是func(c=100,b,a=10).
  15. 可以使用return和pass来结束函数默认为返回None
  16. DocString文档字符串是对一个函数/模块/类的解释说明,位于函数体的前面(推荐格式:文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。 ),可以通过函数名.__doc__进行调用,或者在程序中调用help(函数名)进行查看
  17. 当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你使用。注意,初始化过程仅在我们第一次输入模块的时候进行。当前目录也是sys.path的一部分。另外,脚本的名称(文件名)总是sys.argv列表的第一个参数。
  18. python其实也是一种基于虚拟机的语言,他会先将源码编译为字节码然后再进行解释。编译过程产生pyc文件。http://www.cnblogs.com/kym/archive/2012/05/14/2498728.html
  19. if __name__ == '__main__':print 'This program is being run by itself';else:
        print 'I am being imported from another module' ;主动或者被动运行时的不同!
  20. 内置函数dir用来列出模块定义的标识符。标识符有函数、类和变量。例如dir(sys)。dir()则列出当前模块中定义的名称列表;可以使用del来删除变量
  21. print语句的结尾使用了一个 逗号 来消除每个print语句自动打印的换行符
  22. 列表(可变变量,使用中括号声明):用逗号分隔;append,del,sort;元祖(不可变,使用括号声明)一般用来在打印语句中,print '%s is %d years old' % (name, age)又如print 'Why is %s playing with that python?' % name;字典(由不可变的键和可/不可变得值组成,且没有顺序):items()得到遍历键值对,has_key()判断是否存在值,例如if 'Guido' in ab: # OR ab.has_key('Guido')
  23. 列表、元组和字符串都是序列,但是序列是什么,它们为什么如此特别呢?序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。索引操作序号可以是负数的;切片操作数也可以是符号,a:b是从a位置开始到b-1位置的子序列。list[:]得到整个序列的拷贝
  24. str类的方法startswith,find,delimiter = '_*_'; delimiter.join(mylist)
  25. 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。
  26. __init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的初始化。注意,这个名称的开始和结尾都是双下划线。相当于构造函数。对应的有__del__
  27. 类对象即静态数据,在最外层定义,用类名来访问修改;对象的数据用self来访问修改;
  28. Python中所有的类成员(包括数据成员)都是公共的,所有的方法都是有效的。如果你使用的数据成员名称以双下划线前缀比如__privatevar,Python的名称管理体系会有效地把它作为私有变量。另外习惯上用单下滑线作为前缀的变量表示某个变量只想在类或对象中使用。
  29. Python不会自动调用基本类的constructor,需要手动调用;继承方式即Base,class Children(Base)…
  30. 总是首先查找对应类型的方法。如果它不能在导出类中找到对应的方法,它才开始到基本类中逐个查找。存在多重继承。
  31. import..as;cPickle或者pickle;p.load(file);p.dump(list,file)
  32. 使用try..except..finally语句来处理异常。我们把通常的语句放在try-块中,而把我们的错误处理语句放在except-块中。
  33. 列表综合listone = [2, 3, 4];listtwo = [2*i for i in listone if i > 2]-->listtwo=[6, 8] 
  34. 关于在函数中接收元组和列表: 
  35. #coding:gbk
    def myFun(power,*args):
        sum=0
        for i in args:
            sum += pow(i,power)
        return sum
    def myHashFun(power,**args):
        sum=0
        for key,value in args.items():
            print key,value
            sum += pow(value,power)
        return sum
    hashList = {1:3,2:4,3:5}
    print myFun(2,9)
    print myFun(2,3,4,5)
    print myHashFun(2,a=3,b=4,c=5)

    *与**分别代表元组和字典

  36. lambda形式
  37. def make_repeater(n):
        return lambda s: s*n
    twice = make_repeater(2)
    print twice('word')
    print twice(5) 
  38. exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。eval语句用来计算存储在字符串中的有效Python表达式

  39. assert语句
    >>> mylist = ['item']
    >>> assert len(mylist) >= 1
    >>> mylist.pop()
    'item'
    >>> assert len(mylist) >= 1
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    AssertionError 
  40. repr函数:repr函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。基本上,repr函数和反引号用来获取对象的可打印的表示形式。你可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容。

posted on 2012-06-22 22:48  山上明月  阅读(851)  评论(0编辑  收藏  举报