Python-语法
sf2gis@163.com
2015年1月1日
1 基本语法
单行多语句与多行单语句:单行多语句使用;分隔。多行单语句使用\换行。
标识符:与C相同(大小写敏感)。
不支持重载标识符。
语句层次通过缩进来体现。
获取帮助:help(函数名)。
入口函数:当.py文件被执行时,此模块的名称(__name__)将被设置为__main__,通过判断此名称,可以确保当前模块的执行状态。
参考:http://python.usyiyi.cn/python_278/tutorial/datastructures.html
1.1 注释:
独立注释:#
文档字符串注释:在函数、文件、模块的首行添加一行字符串,充当注释,可以用来自动生成文档。
1.2 基本类型
1.2.1bool
1/True 、0/False。
1.2.2字符串(ansi型):
字符列表组成。索引从0开始,负值索引表示从右向左。单字符表示字符串长度为1。
使用单引号或双引号(意义相同)。\为转义字符。
’’’三引号用于定义多行字符串(自动加入\n换行),其中可自由使用单行字符串’’/””。
续行字符:用于行尾的\。
使用print打印字符串。
r/R前缀可以取消转义字符为显示字符。
两个相邻的字符串字面值自动合并。支持+串联,*重复,\换行。支持列表操作【start,end】取部分列表(包括start,不包括end)(start默认值0,end默认值为全部长度)。
len()返回长度。
无法编辑,只能创建新值。注意:字符串值是只读的。
1.2.3Unicode字符串:
使用u/U前缀声明的字符串就是unicode编码的。encode():Unicode-》ansi,decode()相反。
1.2.4print
打印字符串。如果添加后缀逗号,则不换行。
1.3 操作符
+-*%/(整除,如果两个int操作,则floor整除,如果有浮点数参与,则是浮点除,默认使用double型浮点数),
//(用于整除,无论何种类型都是floor整除)。
**:幂
=:赋值,变量要求先定义后使用。
_:只读型快捷变量,用于表示最近一次操作的结果,定义此变量将会屏蔽全局变量。
in:判断是否在容器中。
del:一切对象的删除功能。
not:否定前缀。
is:相同判断。
and:并。
or:或。
< > ==:比较运算符,可以连续比较。相当于and连接共享操作值。不同类型的比较,只比较类型名。
type():获取类型。
不运行++ --
1.4 流程控制
选择:if…elif…else。无switch…case。
循环:for it in list。whilecond。+else。continue。break。
范围函数:range(start,end,step):生成等差数组列表。
占位语句:pass。
2 函数定义
2.1.1声明
2.1.1.1 def 函数名(参数)
第一行为简介,之后与doxygen相同。默认返回None。可以定义默认值,但默认值只计算一次,如果默认值为容器,则可能会有添加多次。可以使用关键字参数。可以使用可变参数,*name表示一维容器。**name表示字典类型。
return 返回值。
2.1.1.2 lambda表达式: 返回一个匿名函数。
目标:单行函数的简洁写法,尽量不要使用。
方法:lambda表达式
格式:lambda 参数:方法。
参考:http://www.cnblogs.com/evening/archive/2012/03/29/2423554.html
示例:
g=lambda x:x+1
g(1)
>>>2
或者
lambda x:x+1(1)
>>>2
3 容器
参考:http://hi.baidu.com/xifanwu/item/349ea5e269e8aff12a09a4c7
3.1 列表list
可变数组。
使用【】或list()生成。
由【】包裹,逗号分隔声明。支持索引和切片。可读写。可以为切片赋值改变列表。支持+,append(),len()。
3.1.1方法
append,extend,insert,remove,pop,index,count,sort,reverse。
3.1.2应用
3.1.2.1 stack
append()+pop()
3.1.2.2 queue
使用collections.deque,append()+popleft。
3.1.2.3 函数式编程
内置函数:filter,map,reduce,sum(seq)
filter(f,seq):过滤,返回结果为true的输入容器。
map(f,seq):映射,返回所有输入序列的结果。
reduce(f,seq):递减,逐次输入,并返回最终结果。
3.1.2.4 列表解析:快速构建列表
计算规则为由左向右依次深入。可以进行各种复杂的组合。
3.2 元组tuple
只读型常量列表。用()表示,可以混合类型。
使用()或tuple()创建。
只有一个值的元组,用(value,)表示。
3.2.1序列拆分
将元素中值依序列拆分后赋予变量列表。
<