数据类型
数
整型
长整型
浮点数
复数
字符串
'和"是一样的,'''可以包含'和",可以指示一个多行('和"要用\n)
在字符串前加r可取消转义,入r"...\n"(在处理正则表达式时请使用)
在字符串前加u或U表示unicode(在处理文本文件时请使用)
字符串不可变
小知识
None表示没有任何东西的特殊类型
明确的行连接 \
暗示的行连接 使用了() {} [] ''''''
print会在输出内容之间加空格:print 'area is', area会出area is **
print会在最后输出换行,若不想输出换行可在语句最后加个,例如print "aa",
print中可以定制格式,例如print "%s %d" % (<字符串变量>, <数变量>)
input会移除输入内容最后的换行
控制流
if-elif-else
while-else
for i in .. -else
break
continue
小知识
while和for中的else在break时不会被执行
pass表示空语句
函数
def <函数名>(<参数=,>):
调用函数时可给定关键参数值,<函数名>(<参数名>=**)
没有return等于return None
global
小知识
默认参数只能在末尾
默认参数值应该不可变
使用DocStrings:在函数的第一个逻辑行,通常是一个多行字符串,以大写字母开始,句号结尾,第二行是空行,从第三行开始是详细描述。使用<函数名>.__doc__调用
模块
import <模块> [as <别名>]
使用:<模块>.<变量或方法>
form <模块> imnport <变量或方法或*(所有)>
调用时前面不用加模块名(避免使用可提高易读性和名称冲突)
每个.py文件均是模块
小知识
第一次执行import时候会在sys.path包含的目录中搜索(包含当前目录),如找到,将运行该模块中主块的语句
__name__,当运行程序本身时__name__的值为__main__,被其他模块import时则不是,可据此进行相应操作
dir(<模块>)提供模块定义的名称列表(函数,类,变量),默认为当前模块
数据结构
列表list(数组)
用[v1, v2]定义
用list[<数字下标>]来取
方法:
append追加
sort排序(影响列表本身)
del删除一个元素(后面的往前)
元组tuple(不可改变的列表)
用(v1, v2)定义
用tuple[<数字下标>]来取
当定义只有一个元素时,要在最后加个,例如(2,)
字典dict(哈希)
用{k1 : v1, k2 : v2}定义
用dict[<key>]来取
小知识
只能使用不可变的对象来作键(比如字符串)
序列
列表
索引操作符[<下标>]
切片操作符[<可选下标>:<可选下标>],返回从第一个下标到第二个下标前一个的元素
小知识
假设序列长度为n,则下标范围为[-n,n-1]的整数
若切片的2个下标相同则返回空
对复杂对象的赋值语句并不创建拷贝
类
self,第一个参数名称,自动提供
定义对象变量时要加self.定义类变量时要加<类名>.
定义,class <类名>:
__init__构造函数
__del__析构函数,可用del语句触发
小知识
函数没有重载,写在后面的会覆盖前面的,需重载时请用默认参数
继承时子类方法会覆盖同名父类方法(不管参数个数相不相同)
类变量如果以单下划线开始则表示在模块或类(子类)外不可以使用(保护的)
类变量如果以双下划线开始则表示只允许类本身使用(私有的)
以双下划线开始并且以双下划线结束的通常是系统定义的名字
避免用下划线作为变量名的开始(除非你知道你要干什么)
继承,定义:class <子类名>(<父类名>[,<父类名>]):
需要显示的调用<父类名>.__init__
多重继承时,如调用多个父类的同名方法时,从左到右,采用父类深度的广度优先方式(新式类)
多重继承时,父类的祖先类不能写在父类之前
文件
open(<路径>, <模式>)打开,路径可以是相对路径,模式有w:写,r:读,a:追写,默认为r
close()关闭,write()写,readline()读一行(包括行末的换行符)
可以用pickle/cPickle在文件里读写一个对象(cPlickle比pickle快1000倍,可能需要额外下)
异常
try..except-else-finally,else在try没有抛出异常时执行,finally一定执行
可以使用raise <异常类>来抛出异常
其他
单语句块,例如 if 1 : print("1"),不推荐用在检验错误以外的地方
列表综合,例如 listtwo = [2*i for i in listone if i > 2]
在函数中表示传进来的参数是元组(用*)或列表(用**)(只用在最后一个参数,会把多余的参数整在一起)
exec语句用来执行储存在字符串或文件中的Python语句
eval语句用来计算存储在字符串中的有效Python表达式
assert语句用来声明某个条件是真的,并在失败时抛出一个AssertionError
repr函数用来取得对象的规范字符串表示
数
整型
长整型
浮点数
复数
字符串
'和"是一样的,'''可以包含'和",可以指示一个多行('和"要用\n)
在字符串前加r可取消转义,入r"...\n"(在处理正则表达式时请使用)
在字符串前加u或U表示unicode(在处理文本文件时请使用)
字符串不可变
小知识
None表示没有任何东西的特殊类型
明确的行连接 \
暗示的行连接 使用了() {} [] ''''''
print会在输出内容之间加空格:print 'area is', area会出area is **
print会在最后输出换行,若不想输出换行可在语句最后加个,例如print "aa",
print中可以定制格式,例如print "%s %d" % (<字符串变量>, <数变量>)
input会移除输入内容最后的换行
控制流
if-elif-else
while-else
for i in .. -else
break
continue
小知识
while和for中的else在break时不会被执行
pass表示空语句
函数
def <函数名>(<参数=,>):
调用函数时可给定关键参数值,<函数名>(<参数名>=**)
没有return等于return None
global
小知识
默认参数只能在末尾
默认参数值应该不可变
使用DocStrings:在函数的第一个逻辑行,通常是一个多行字符串,以大写字母开始,句号结尾,第二行是空行,从第三行开始是详细描述。使用<函数名>.__doc__调用
模块
import <模块> [as <别名>]
使用:<模块>.<变量或方法>
form <模块> imnport <变量或方法或*(所有)>
调用时前面不用加模块名(避免使用可提高易读性和名称冲突)
每个.py文件均是模块
小知识
第一次执行import时候会在sys.path包含的目录中搜索(包含当前目录),如找到,将运行该模块中主块的语句
__name__,当运行程序本身时__name__的值为__main__,被其他模块import时则不是,可据此进行相应操作
dir(<模块>)提供模块定义的名称列表(函数,类,变量),默认为当前模块
数据结构
列表list(数组)
用[v1, v2]定义
用list[<数字下标>]来取
方法:
append追加
sort排序(影响列表本身)
del删除一个元素(后面的往前)
元组tuple(不可改变的列表)
用(v1, v2)定义
用tuple[<数字下标>]来取
当定义只有一个元素时,要在最后加个,例如(2,)
字典dict(哈希)
用{k1 : v1, k2 : v2}定义
用dict[<key>]来取
小知识
只能使用不可变的对象来作键(比如字符串)
序列
列表
索引操作符[<下标>]
切片操作符[<可选下标>:<可选下标>],返回从第一个下标到第二个下标前一个的元素
小知识
假设序列长度为n,则下标范围为[-n,n-1]的整数
若切片的2个下标相同则返回空
对复杂对象的赋值语句并不创建拷贝
类
self,第一个参数名称,自动提供
定义对象变量时要加self.定义类变量时要加<类名>.
定义,class <类名>:
__init__构造函数
__del__析构函数,可用del语句触发
小知识
函数没有重载,写在后面的会覆盖前面的,需重载时请用默认参数
继承时子类方法会覆盖同名父类方法(不管参数个数相不相同)
类变量如果以单下划线开始则表示在模块或类(子类)外不可以使用(保护的)
类变量如果以双下划线开始则表示只允许类本身使用(私有的)
以双下划线开始并且以双下划线结束的通常是系统定义的名字
避免用下划线作为变量名的开始(除非你知道你要干什么)
继承,定义:class <子类名>(<父类名>[,<父类名>]):
需要显示的调用<父类名>.__init__
多重继承时,如调用多个父类的同名方法时,从左到右,采用父类深度的广度优先方式(新式类)
多重继承时,父类的祖先类不能写在父类之前
文件
open(<路径>, <模式>)打开,路径可以是相对路径,模式有w:写,r:读,a:追写,默认为r
close()关闭,write()写,readline()读一行(包括行末的换行符)
可以用pickle/cPickle在文件里读写一个对象(cPlickle比pickle快1000倍,可能需要额外下)
异常
try..except-else-finally,else在try没有抛出异常时执行,finally一定执行
可以使用raise <异常类>来抛出异常
其他
单语句块,例如 if 1 : print("1"),不推荐用在检验错误以外的地方
列表综合,例如 listtwo = [2*i for i in listone if i > 2]
在函数中表示传进来的参数是元组(用*)或列表(用**)(只用在最后一个参数,会把多余的参数整在一起)
exec语句用来执行储存在字符串或文件中的Python语句
eval语句用来计算存储在字符串中的有效Python表达式
assert语句用来声明某个条件是真的,并在失败时抛出一个AssertionError
repr函数用来取得对象的规范字符串表示