Fork me on GitHub

2013年9月9日

摘要: 一、概述二、声明、定义和调用三、参数1、参数传递2、实参类型3、形参绑定四、返回值五、名字空间与作用域1、基本概念2、名字空间3、作用域4、总原则六、高级1、装饰器2、生成器一、概述函数(function)是一个可调用的(callable)对象,它获取一些(0个或多个)参数,然后执行一段代码,最后返回一个值给调用者。在Python中,函数是第一级对象(first-class),因此它具有与其他Python对象完全相同的基本行为特征,如可以被传递、可以作为右值进行赋值、可以作为另一个函数的参数或返回值等等。二、声明、定义和调用与C/C++不同的是,Python中的函数不单独区分 声明 和 定义, 阅读全文
posted @ 2013-09-09 14:33 RussellLuo 阅读(2676) 评论(0) 推荐(0) 编辑

2013年9月3日

摘要: 一、概述映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系。字典(dict)是Python中唯一的映射类型,它是存储了一个个 键值对(由 键 映射到 值)的关联容器。其中,键(key)必须是可哈希的Python对象,而 值(value)可以是任何Python对象。在功能上,Python中的字典类似于C++中的map。Python中最强大、最灵活的数据类型当属 列表 和 字典,以下是对这两种数据类型的简单比较:比较点列表字典表示方法[],[1, 2]{},{'a': 1, 'b': 2}访问元素的方式索引键有序性有序无序 阅读全文
posted @ 2013-09-03 20:56 RussellLuo 阅读(26781) 评论(0) 推荐(0) 编辑

2013年9月2日

摘要: 一、概述列表(list)是由一个个 Python对象 组成的序列。其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值、字符串、列表、元组和字典)以及 用户自定义类型(类)。相比而言,字符串 仅仅是字符的序列,因此列表的概念和用途比字符串更广泛。元组(tuple)也是 Python对象 的序列,与列表非常接近。二者的主要差异点如下:差异点列表元组表示方法空列表:[]单元素列表:[1]多元素列表[1, 'a']空元组:()单元素元组:(1,)多元素元组:(1, 'a')可变性可变不可变可操作性支持丰富的操作仅支持序列操作可哈希性不可哈希, 阅读全文
posted @ 2013-09-02 18:04 RussellLuo 阅读(1872) 评论(0) 推荐(0) 编辑
摘要: 一、概述字符串 类似于C中的字符数组(功能上更像C++中的string),它是由一个个 字符 组成的序列。与C/C++不同的是,Python中没有 字符 这个类型,而是用 长度为1的字符串 来表示字符的概念。二、分类Python中的字符串共有2种:ASCII字符串(str)和 Unicode字符串(unicode)。每一种字符串又可以进一步划分:根据对转义字符处理方式的不同,分为 常规字符串 和 原始字符串;根据字符串是否跨行,分为 单行字符串 和 跨行字符串。每一个字符串的字面值既可以包含在 单引号(')中,又可以包含在 双引号(")中。以单引号为例(双引号的情况把  阅读全文
posted @ 2013-09-02 00:12 RussellLuo 阅读(2495) 评论(0) 推荐(0) 编辑

2013年8月31日

摘要: 一、概述序列类型(Sequence Types)类似于C中的数组,它是包含一组成员的连续列表,这些成员紧邻排列,并且可以通过序号(下标偏移量)访问其中的一个或多个成员。序列类型的示意图如下所示:Python中最核心的序列类型共有3种:字符串(str和unicode)、列表(list)和元组(tuple)。二、操作序列类型支持的主要操作如下:操作说明s[i]s中第i个成员(从0开始)s[i:j]s中从i到j的切片s[i:j:k]s中从i到j的切片,步长为ks * n, n * ss的n份(浅)拷贝的串联s + ts与t的串联x in s如果x是s的成员,为True;否则,为Falsex not 阅读全文
posted @ 2013-08-31 20:06 RussellLuo 阅读(1216) 评论(0) 推荐(0) 编辑
摘要: 一、概述Python中的 数值类型(Numeric Types)共有5种:布尔型(bool)、整型(int)、长整型(long)、浮点型(float)和复数(complex)。数值类型支持的主要操作如下:操作说明boolintlongfloatcomplexx ** y指数运算√√√√√+x符号不变√√√√√-x符号取反√√√√√~x按位取反√√√x * y乘法√√√√√x / y除法√√√√√x // y地板除√√√√√x % y取余√√√√√x + y加法√√√√√x - y减法√√√√√x > y位右移√√√x & y按位与√√√x ^ y按位异或√√√x | y按位或√√ 阅读全文
posted @ 2013-08-31 11:37 RussellLuo 阅读(57543) 评论(1) 推荐(0) 编辑
摘要: 一、概述Python基础 是对 Python(2.7版本)基本语法的要点总结,主要参考了以下资料:Python核心编程(第二版)Learning Python (3rd Edition)Python官方文档(如 The Python Standard Library、The Python Language Reference 等)二、目录Python基础:数值(布尔型、整型、长整型、浮点型、复数)Python基础:序列Python基础:序列(字符串)Python基础:序列(列表、元组)Python基础:映射(字典)Python基础:文件Python基础:异常Python基础:函数Python基 阅读全文
posted @ 2013-08-31 10:27 RussellLuo 阅读(727) 评论(1) 推荐(0) 编辑

2013年8月28日

摘要: 一、概述快速排序(quick sort)是一种分治排序算法。该算法首先 选取 一个划分元素(partition element,有时又称为pivot);接着重排列表将其 划分 为三个部分:left(小于划分元素pivot的部分)、划分元素pivot、right(大于划分元素pivot的部分),此时,划分元素pivot已经在列表的最终位置上;然后分别对left和right两个部分进行 递归排序。其中,划分元素的 选取 直接影响到快速排序算法的效率,通常选择列表的第一个元素或者中间元素或者最后一个元素作为划分元素,当然也有更复杂的选择方式;划分 过程根据划分元素重排列表,是快速排序算法的关键所在, 阅读全文
posted @ 2013-08-28 14:46 RussellLuo 阅读(1972) 评论(1) 推荐(0) 编辑

2013年8月27日

摘要: 一、顺序搜索顺序搜索 是最简单直观的搜索方法:从列表开头到末尾,逐个比较待搜索项与列表中的项,直到找到目标项(搜索成功)或者 超出搜索范围 (搜索失败)。根据列表中的项是否按顺序排列,可以将列表分为 无序列表 和 有序列表。对于 无序列表,超出搜索范围 是指越过列表的末尾;对于 有序列表,超过搜索范围 是指进入列表中大于目标项的区域(发生在目标项小于列表末尾项时)或者指越过列表的末尾(发生在目标项大于列表末尾项时)。1、无序列表在无序列表中进行顺序搜索的情况如图所示:def sequentialSearch(items, target): for item in items: ... 阅读全文
posted @ 2013-08-27 23:12 RussellLuo 阅读(1541) 评论(0) 推荐(1) 编辑
摘要: 一、概述链表(linked list)是一组数据项的集合,其中每个数据项都是一个节点的一部分,每个节点还包含指向下一个节点的链接(参考 《算法:C语言实现》)。根据结构的不同,链表可以分为单向链表、单向循环链表、双向链表、双向循环链表等。其中,单向链表和单向循环链表的结构如下图所示:二、ADT这里只考虑单向循环链表ADT,其他类型的链表ADT大同小异。单向循环链表ADT(抽象数据类型)一般提供以下接口:SinCycLinkedlist() 创建单向循环链表add(item) 向链表中插入数据项remove(item) 删除链表中的数据项search(item) 在链表中查找数据项是否存在emp 阅读全文
posted @ 2013-08-27 15:30 RussellLuo 阅读(18961) 评论(0) 推荐(1) 编辑

导航