东东学python

Posted by 咖啡不苦 on October 25, 2015

这是我看a byte of python的笔记,如果你也是java程序员,希望你能感到亲切。

  • 单引号和双引号都可以做字符串字面量,三引号更强,里面可以随意使用单引号和双引号,还可以换行,用于文档字符串
  • 格式化占位符用{位置|名字},格式指定类似c,比如'{0:.3f}'.format(1.0/3)
  • 命名习惯用下划线连接,而非驼峰方式或其他
  • 分号可以用来分割行(语句),但强烈建议直接换行。在一个物理行内只写一个逻辑行
  • while循环可以配一个else,在循环结束时执行else块.for循环同理
  • for..in
  • 函数用def定义
  • 参数采用值传递,作用域在函数体内,改变值不会影响外部。如果想影响外部,采用global语句
  • 函数参数可以设置默认值 def func(a,b=1)
  • 函数调用时,可以通过指定参数名字,改变传参顺序和个数
  • 变长参数列表:*param用来声明普通的变长参数集合,**param用来声明带名字的变长参数集合
  • 一个简单的py文件就是一个模块,运行时可以通过if __name__=‘__main__’来判断,当前程序是独立运行还是被当做模块被引用
  • from mymodule import *可以引入模块里的所有公有names,但不引入__开头的私有names
  • list是一种基本的数据结构,比java的list和array都强哦。可以包含不同数据类型的元素,比如l = [1, '2', (3,4)]
  • tuple是另一种数据结构,和list相似,但没有list那么多功能,且元组是“不可变”的
  • Dictionary类似map,for k, v in dic.items() dic['key']
  • sequence, list tuple string 这些都是sequence,他的主要功能是判断in 和 not in。还有按序号访问,最重要的是支持切片操作
  • 用tuple可以实现“多个返回值”的效果
  • os.sep路径分隔符
  • os.system调用系统命令,返回0标示成功,否则返回错误码
  • Software is grown, not built.
  • self相当于this
  • myObject.method(arg1, arg2)会被python转换为MyClass.method(myObject, arg1, arg2)调用。所以,如果一个方法没参数,最少都有一个参数是self
  • class Person 不是用def
  • pass 表示一个空块
  • __init__相当于构造方法
  • 类变量,共享给这个类的所有对象访问。类比静态变量
  • 对象变量,就是某个对象私有了,类比成员变量
  • 用两个下划线开头的 为私有变量名 __privatevar
  • class Man(Person) 这样就声明了Man继承Person
  • raw_input() 等待用户输入
  • open('poem.txt', 'w')打开文件,模式有r读,w写,a追加,t文本,b二进制,记得close() ^_^
  • try..except处理异常
  • class ShortInputException(Exception) 通过继承Exception来定义异常
  • raise ShortInputException(...)向上抛出异常