这是我看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
相当于thismyObject.method(arg1, arg2)
会被python转换为MyClass.method(myObject, arg1, arg2)
调用。所以,如果一个方法没参数,最少都有一个参数是self
class Person
不是用defpass
表示一个空块__init__
相当于构造方法- 类变量,共享给这个类的所有对象访问。类比静态变量
- 对象变量,就是某个对象私有了,类比成员变量
- 用两个下划线开头的 为私有变量名
__privatevar
class Man(Person)
这样就声明了Man继承Personraw_input()
等待用户输入open('poem.txt', 'w')
打开文件,模式有r读,w写,a追加,t文本,b二进制,记得close()
^_^try..except
处理异常class ShortInputException(Exception)
通过继承Exception来定义异常raise ShortInputException(...)
向上抛出异常