数据结构( Pyhon 语言描述 ) — — 第1章:Python编程基础
- 变量和赋值语句
- 在同一条赋值语句中可以引入多个变量
- 交换变量a 和b 的值
a,b = b,a
- Python换行可以使用转义字符\,下一行的缩进量相同
)\
- 帮助文档
help()
- 控制语句
- 条件式语句
- 如果只有一条语句,可以不用换行
:print('smaller')
- 模块测试语句
if __name__ == "__main__":
main()
- 字符串及其运算
- 运算符
] #Retruns "eat"
- 格式化字符串
- 格式
<formtt string> % <datum>
- 指定字符宽度以及左右对齐
print( "%6s" % "four" ) #右对齐
print( "%-6s" % "four" ) #左对齐
):
print( "%-3d%12d" % ( exponent, 10 ** exponent ) )
- 浮点数
%<field width>.<precision>f
- precision 为小数点的精度
- 示例
print( "Your salary is $%0.2f." % salary )
- 对象和方法的调用
- 显示某一对象的所有方法
- 在 IDLE 中使用 dir 命令
- 示例
dir(str)
- 内建Python集合及操作
- 对集合应用模式匹配
- 模式匹配将一个结构赋值给另一个形式完全相同的结构
rgTuple = ( ( <r>, <g>, <b> ), <string> )
( ( r, g, b ), hexString ) = rgTuple
- 编写新的函数
- 递归函数
- 运行示例
def ourSum( lower, upper, margin = 0 ):
"""Returns the sum of the numbers from lower to upper,
and outputs a trace of the arguements and return values
on each call."""
blanks = " " * margin
print( blanks,str(lower)+ str(upper) )
if lower > upper:
print( blanks, 0 )
else:
, upper, margin + 4 )
print( blanks,result )
return result
if __name__ == "__main__":
)
- 输出
- 嵌套函数的定义
- 示例
def factorial(n):
""" Returns the factorial of n. """
def recurse(n, product):
: return product
, n * product)
)
- 高阶函数
- 高阶函数接收一个函数作为参数,并且以某种方式应用该函数
- map 函数
- 输入:一个函数和一个可迭代对象
- 输出:对可迭代对象的每一项应用参数函数,得到一个新的可迭代对象,并返回
- 示例
]
newList = list( map( str, oldList ) ) #Returns ['1', '2', '3', '4']
- filter 函数
- 输入:一个布尔函数的一个可迭代对象
- 功能:对可迭代对象的每一项应用布尔函数,如果其为真,则将其加入到新的可迭代对象中。
- 示例
def isPositive( number ):
"""判断是否为正数"""
: return True
else: return False
]
newList = list( filter( isPositive, oldList ) ) #[2,3,5,1000]
- 使用 lambda 创建匿名函数
lambda <argument list> : <expression>
- 示例
, oldList ) )
- functools.reduce 高阶函数
- 功能:通过应用带有两个参数的函数来将一个可迭代对象转换为单个的值,该函数的两个参数是下一项和前一次应用该函数的结果
- 示例
import functools
) ) #120
- 捕获异常
- 确保用户输入整数
def safeIntegerInput( prompt ):
"""Pormpts the user for an integer nad returns the
integer if it is well-formed. Otherwise, prints an
error message and repeats this process."""
inputString = input( prompt )
try:
number = int( inputString )
return number
except ValueError:
print( "Please Enter in the correct number format:", inputString )
return safeIntegerInput( prompt )
- 文件及其操作
- 使用 pickle 读写对象
- 可以直接对对象进行储存与读取操作
- 示例
import pickle
#写入文件
] ]
fileObj = open( "items.dat", "wb" )
for item in lyst:
pickle.dump( item, fileObj )
fileObj.close()
#读取文件
lyst = list()
fileObj = open( "items.dat", "rb" )
while True:
try:
item = pickle.load( fileObj )
lyst.append( item )
except EOFError:
fileObj.close()
break
print( lyst )
- 创建新的类
- 所有的 Python 类都位于层级之中, object 在这个层级的根部
- 示例
class Counter(object):
"""Models a counter"""
# Class variable
# Constructor
def __init__(self):
"""Set up the counter."""
self.reset()
#Mutator methods
def reset(self):
"""Sets the counter to 0. """
):
"""Adds amount to the counter."""
self._value += amount
):
"""Subtracts amount from the counter"""
self._value -= amount
#Acessor methods
def getValue(self):
"""Return the counter's value."""
return str( self._value )
def __str__(self):
"""Returns the string representation of the counter."""
return str(self._value)
def __eq__(self, other):
"""Returns True if self equals other or False otherwise."""
if self is other: return True
if type(self) != type(other): return False
return self._value == other._value
- 类变量 instances
- 记录了所创建的 Counter 对象的数目
- 除了最初的赋值以外,在其他时候,类变量必须有一个类名作为其前缀
- 实例变量 self._value
- 加下划线的目的是为了便于区别
- __str__
- 覆盖了 object 中的 str 函数
- __eq__
- 相当于 ==
数据结构( Pyhon 语言描述 ) — — 第1章:Python编程基础的更多相关文章
- 数据结构( Pyhon 语言描述 ) — —第10章:树
树的概览 树是层级式的集合 树中最顶端的节点叫做根 个或多个后继(子节点). 没有子节点的节点叫做叶子节点 拥有子节点的节点叫做内部节点 ,其子节点位于层级1,依次类推.一个空树的层级为 -1 树的术 ...
- 数据结构( Pyhon 语言描述 ) — — 第5章:接口、实现和多态
接口 接口是软件资源用户可用的一组操作 接口中的内容是函数头和方法头,以及它们的文档 设计良好的软件系统会将接口与其实现分隔开来 多态 多态是在两个或多个类的实现中使用相同的运算符号.函数名或方法.多 ...
- 数据结构( Pyhon 语言描述 ) — —第9章:列表
概念 列表是一个线性的集合,允许用户在任意位置插入.删除.访问和替换元素 使用列表 基于索引的操作 基本操作 数组与列表的区别 数组是一种具体的数据结构,拥有基于单个的物理内存块的一种特定的,不变的实 ...
- 数据结构( Pyhon 语言描述 ) — — 第7章:栈
栈概览 栈是线性集合,遵从后进先出原则( Last - in first - out , LIFO )原则 栈常用的操作包括压入( push ) 和弹出( pop ) 栈的应用 将中缀表达式转换为后缀 ...
- 数据结构( Pyhon 语言描述 ) — — 第4章:数据和链表结构
数据结构是表示一个集合中包含的数据的一个对象 数组数据结构 数组是一个数据结构 支持按照位置对某一项的随机访问,且这种访问的时间是常数 在创建数组时,给定了用于存储数据的位置的一个数目,并且数组的长度 ...
- 数据结构( Pyhon 语言描述 ) — —第11章:集和字典
使用集 集是没有特定顺序的项的一个集合,集中的项中唯一的 集上可以执行的操作 返回集中项的数目 测试集是否为空 向集中添加一项 从集中删除一项 测试给定的项是否在集中 获取两个集的并集 获取两个集的交 ...
- 数据结构( Pyhon 语言描述 ) — — 第6章:继承和抽象类
继承 新的类通过继承可以获得已有类的所有特性和行为 继承允许两个类(子类和超类)之间共享数据和方法 可以复用已有的代码,从而消除冗余性 使得软件系统的维护和验证变得简单 子类通过修改自己的方法或者添加 ...
- 数据结构( Pyhon 语言描述 ) — — 第3章:搜索、排序和复杂度分析
评估算法的性能 评价标准 正确性 可读性和易维护性 运行时间性能 空间性能(内存) 度量算法的运行时间 示例 """ Print the running times fo ...
- 数据结构( Pyhon 语言描述 ) — — 第2章:集合概览
集合类型 定义 个或多个其他对象的对象.集合拥有访问对象.插入对象.删除对象.确定集合大小以及遍历或访问集合的对象的操作 分类 根据组织方式进行 线性集合 线性集合按照位置排列其项,除了第一项,每一项 ...
随机推荐
- 112 Path Sum 路径总和
给定一棵二叉树和一个总和,确定该树中是否存在根到叶的路径,这条路径的所有值相加等于给定的总和.例如:给定下面的二叉树和 总和 = 22, 5 / \ ...
- 寻找最美的你(select)
Time Limit:2000ms Memory Limit:128MB 题目描述 这个问题是这样的,如果一个区间[L,R]存在一个数ai,使得这个数是这个区间所有数的约数,那么[L,R]这段区间 ...
- JS排序--快速排序
用 JavaScript 实现快速排序代码如下: /* * @author liphong * @data 2019/02/24 */ var arr = []; // 需要被排序数组 /* * 分离 ...
- MyBatis框架的XML数据访问Dao层接口的组合使用
MyBatis 的前生为Apache的开源项目iBatis.其优势在于灵活,几乎可以替代JDBC,同时提供了编程接口.目前MyBatis的数据访问Dao层不需要实现类,也不需要像JDBC那样拼接Hql ...
- CF1066B Heaters
思路: 从左向右贪心选择能覆盖当前位置的最靠右的那个heater即可,和poj radar installation类似. 实现: #include <iostream> #include ...
- AngularJs数据绑定原理
注 这篇博文主要是写给新手的,是给那些刚刚开始接触Angular,并且想了解数据帮定是如何工作的人.如果你已经对Angular比较了解了,那强烈建议你直接去阅读源代码. Angular用户都想知道数据 ...
- java.lang.ClassCastException android.widget.RelativeLayout LayoutParams 异常
1.在xml布局文件如下所示: <RelativeLayout android:layout_width="match_parent" android:layout_heig ...
- [windows]解决Win7访问Windows 2003、XP共享慢的问题
解决方法: 1. 修改网卡配置打开本地连接属性,点击"配置"在"高级"选项卡中,将"大型发送分载(IPv4)"的值设置成"禁用&q ...
- NumPy库的基本使用
一.介绍 ——NumPy库是高性能科学计算和数据分析的基础包,它是Pandas及其它各种工具的基础 ——NumPy里的ndarry多维数组对象,与列表的区别是: - 数组对象内的元素类型必须一样 - ...
- More helpful Cocos2d and Gaming macros
More helpful Cocos2d and Gaming macros Here are w few macros that i wrote to make the code more read ...