数据结构( 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章:集合概览
集合类型 定义 个或多个其他对象的对象.集合拥有访问对象.插入对象.删除对象.确定集合大小以及遍历或访问集合的对象的操作 分类 根据组织方式进行 线性集合 线性集合按照位置排列其项,除了第一项,每一项 ...
随机推荐
- wawawa8的模板复习计划
wawawa8的模板复习计划 数据结构 //手写堆 [link][https://www.luogu.org/problemnew/show/P3378] //并查集 [link][https://w ...
- E.华华给月月准备礼物
链接:https://ac.nowcoder.com/acm/contest/392/E 题意: 二月中旬虐狗节前夕,华华决定给月月准备一份礼物.为了搭建礼物的底座,华华需要若干根同样长的木棍.华华手 ...
- BZOJ1102(搜索)
随便写一下的搜索,别的OJ深搜就过了,强大的BZOJ成功栈溢出RE了我并使我屈服地用广搜过掉,第一行手动开栈惨遭无视. 广搜: #pragma comment(linker, "/STACK ...
- 083 Remove Duplicates from Sorted List 有序链表中删除重复的结点
给定一个排序链表,删除所有重复的元素使得每个元素只留下一个.案例:给定 1->1->2,返回 1->2给定 1->1->2->3->3,返回 1->2- ...
- dataTable 中数据的居中显示
遇到了一个小问题,就是在向dataTable中添加数据时,数据总是向左对齐,而dataTable又没有设置数据对齐的方法,这里写一个在网上看到的一个方法,分享出来看一下,简单实用. html代码如图1 ...
- lnmp.org + phpstorm + xdebug
lnmp.org下载安装包安装之: lnmp是个集成安装包,就不用自己在配置lnmp环境 安装phpstorm,破解方法:注册服务器为http://idea.lanyus.com 就可以了 xdebu ...
- vim编辑器高级应用
1. vim主要模式介绍 命令模式.命令行模式.编辑模式 字符操作:i 当前插入, I行首插入, a当前字符之后插入,A行首插入, ESC退出当前模式 2. vim命令模式 3. vim插入模式 4. ...
- Oracle查询排序asc/desc 多列 order by
查询结果的排序 显示EMP表中不同的部门编号. 如果要在查询的同时排序显示结果,可以使用如下的语句: SELECT 字段列表 FROM 表名 WHERE 条件 ORDER BY 字段名1 [ASC|D ...
- leetcode134 Gas Station
思路: https://leetcode.com/problems/gas-station/discuss/269604/Java-Greedy-thought-process 关键是要想清楚如果从加 ...
- THML5新增功能
HTML5新增功能 1.语义化标记: 1)article:article标签装载显示一个独立的文章内容.例如一篇完整的论坛帖子,一则网站新闻,一篇博客文章等等,一个用户评论等等 artilce可以嵌套 ...