首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 软件工程 >

以解决计算问题为导向的Python编程实践 [平装]

2012-10-06 
从计算机科学的角度全面讲解Python的理论知识和编程方法,包含大量来源于实际生活的与数据处理相关的实战案例,是系统学习Python编程的经典著作.
商家名称 信用等级 购买信息 订购本书
以解决计算问题为导向的Python编程实践 [平装] 去商家看看
以解决计算问题为导向的Python编程实践 [平装] 去商家看看

编辑推荐

《Python入门经典:以解决计算问题为导向的Python编程实践》不仅适合入门级的Python程序员系统学习,也适合作为高等院校计算机和非计算机专业的程序设计课程教材。

作者简介

作者:(美国)潘曲(William F. Punch) (美国)尹鲍德(Richard Enbody) 译者:张敏 等

潘曲,William F.Punch,1989年获得密歇根州立大学计算机科学博士学位,2006年至今担任密歇根大学高性能计算中心(www.hpcc.msu.edu)的主任,具有30多年的计算机教学和实践经验。研究方向包括:基因算法和基因编程,涵盖理论问题(并行GA/GP)和应用问题(设计、布局和调度),以及数据挖掘等。在计算机方面有十多年丰富的教学经验,撰写过多本计算机图书,发表过上百篇关于计算机的论文。
尹鲍德,Richard Enbody,是密歇根州立大学计算机科学和工程系教授,具有30多年丰富的计算机教学经验,研究方向包括:计算机安全、计算机体系结构、并行处理等,发表过50多篇关于计算机技术的论文。

目录

译者序
前言
第一部分关于计算机的思考
第0章计算机科学研究
0.1为什么要研究计算机科学
0.1.1计算机科学的重要性
0.1.2计算机“科学”
0.1.3通过编程学习计算机科学
0.2编程韵困难和使命
0.2.1困难1:同时做两件事
0.2.2困难2:什么是好程序
0.2.3程序的使命
0.3选择一种计算机语言
0.3.1各种计算机语言
0.3.2为什么选Python
0.3.3Python是最好的程序语言吗
0.4什么是计算
0.5什么是计算机
0.5.1自然界中的计算
0.5.2人类制造的计算机
0.6现代电子计算机
0.6.1就是开关
0.6.2晶体管
0.7从更高层面来了解现代计算机
0.8数据表示
0.8.1二进制数据
0.8.2使用二进制
0.8.3局限性
0.8.4字符表示
0.8.5其他数据表示
0.8.6数字代表什么
0.8.7数据量
0.8.8数据量有多大
0.9后续章节概述
0.10总结
第二部分开始编程
第1章入门
1.1练习,练习,再练习
1.2快速入门——计算圆周长的程序
1.3交互式会话
1.4程序组成部分
1.4.1模块
1.4.2表达式和语句
1.4.3空白
1.4.4注释
1.4.5Python的特殊元素:标记
1.4.6对象命名
1.5变量
1.6对象和类型
1.6.1数字
1.6.2其他内置类型
1.6.3对象类型:非变量类型
1.6.4创建新值
1.7运算符
1.7.1整数运算符
1.7.2浮点运算符
1.7.3混合运算符
1.7.4运算符顺序和圆括号
1.7.5增强的赋值运算符:快捷方式
1.8第一个模块:math模块
1.9开发算法
1.10总结
1.11视觉场景:海龟绘图
习题
编程项目
第2章控制语句
2.1选择语句:if
2.1.1利用布尔值做决定
2.1.2if语句
2.1.3示例:在篮球运动中,领先多少分才安全
2.1.4循环
2.1.5例子:寻找完全数
2.1.6例子:对数字分类
2.2深入控制语句
2.2.1真与假:布尔值
2.2.2布尔变量
2.2.3关系运算符
2.2.4布尔运算符
2.2.5优先级
2.2.6布尔运算符示例
2.2.7另一种赋值方式
2.2.8用于判定的选择语句
2.2.9Python判定语句进阶
2.2.10循环:while语句
2.2.11信号量循环
2.2.12循环总结
2.2.13 for语句进阶
2.2.14嵌套
2.2.15冰雹序列示例
2.3视觉场景:用pylab对数据绘图
2.3.1使用列表和第一次绘制
2.3.2更有趣的绘图:正弦波
2.4计算机科学观点:最小的通用计算
2.5总结
习题
编程项目
第3章算法和程序开发
3.1什么是算法
3.2算法特征
3.2.1算法和程序
3.2.2细化
3.2.3有效性
3.2.4指定行为
3.2.5通用算法
3.2.6真的可以实现一切吗
3.3程序是什么
3.3.1可读性
3.2.2鲁棒性
3.3.3正确性
3.4程序设计策略
3.4.1参与并提交
3.4.2了解,然后想象
3.4.3编程之前先思考
3.4.4实验
3.4.5简化
3.4.6停下来思考
3.4.7放松:让自己休息一下
3.5简单示例
3.5.1搭建框架
3.5.2输出
3.5.3输入
3.5.4计算
3.6总结
习题
第三部分组织:数据结构和函数
第4章字符串
4.1字符串类型
4.1.1三重引号字符串
4.1.2非显示字符
4.1.3字符串表示形式
4.1.4字符序列
4.1.5索引和分片
4.2字符串操作
4.2.1连接(+)和重复(+)
4.2.2“+”什么时候表示加法运算,什么时候表示连接运算
4.2.3比较运算符
4.2.4 in运算符
4.2.5字符串集合是不可变的
4.3函数和方法预览
4.3.1第一步:什么是函数
4.3.2选择方法的名字和参数
4.3.3字符串方法
4.3.4字符串函数
4.4字符串的格式化输出
4.4.1描述符码
……
第5章 函数快速入门
第6章 列表和元组
第7章 深入了解函数
第8章 字典和集合
第9章 文件
第10章 程序开发进阶
第四部分 类:自定义数据结构和算法
第11章 类
第12章 类进阶
第13章 使用类开发程序
第五部分 成为更好的程序员
第14章 异常和异常处理
第15章 测试
第16章 递归:另一种控制机制
附录

文摘

版权页:



插图:



3.2算法特征
通过调用算法的方式,食谱(给出的第一个算法描述)能正常工作,但是从计算机科学的角度来看这还不够。尤其是计算机科学家们感兴趣的是什么是好算法。好的算法具有一些共同的特点。在开始研究这些特点前,要先澄清算法和程序之间的区别。
3.2.1算法和程序
算法和相关的程序关系紧密,有时容易发生混淆,尤其是在第一次学习编程时。它们之间是有区别的,用最简单的术语描述如下:
算法是对如何解决问题的描述。
程序是在特定类型的计算机上,用特定语言对算法的实现。
再次思考巧克力蛋糕和平方根的算法。蛋糕食谱遗漏了厨房的细节。例如,它并没有指出在哪里可以找到碗来混合食物。此外,食谱也没有告诉我们如何设置烤箱温度(旋转调节盘或按按钮)?而使用笔和纸进行平方根计算,与使用计算机甚至算盘进行平方根计算也有不同。在两个例子中都缺少细节,尤其是如何实现算法。厨师在他自己的厨房工作,食谱中缺少的细节并不造成困难,因为厨师知道碗放在哪里,并且知道如何操作烤箱。同样的,熟悉某种编程语言和操作系统的计算机程序员,在应用算法时也知道如何处理这些细节。
将想要做什么和实际中如何实现区分开来,会带来不少好处:
我们可以分析算法,将算法本身与算法如何实现区分开来。这种分析是在计算机学科中的“科学”。将算法与实现分开,使得我们能够专注于算法的属性。例如,算法分析能提出改进建议,对所有实现都有所改进。
我们能看到某种编程语言在多大的程度上将算法实现好。每一种语言都有自己的短处和长处,这也可能使得算法实现起来更难或者更容易。计算机语言设计时会侧重于这点。
我们能分析用某种特定的计算机和语言实现算法的情况。例如,在特定问题上,可能会有成本或能源的限制,因此开发时间或者硬件的成本可能成为约束条件。编程语言的选择会影响前者;而处理器的选择会影响后者。
初学的时候,最好强调算法和实现之间的差异。然而,正如前面所提到的,它们也并不总是独立的。对于特定的问题,通常会有多种算法能够得到正确解答。例如,要在特定的计算机上解决某个问题,选择的算法往往是适合这类机器的。举两个例子。多核处理器可以同时运行一个程序的多个部分,有些算法比其他算法更适合这样的环境。另一个例子是嵌入式处理器,如控制汽车的刹车。该处理器只需较低的计算能力和内存,因此具有低功耗和低内存需求的算法可能更为合适。
3.2.2细化
算法需要足够细致,指出要达到目标必须完成的所有事情。然而,“足够细致”本身很难准确定义。算法需要有足够的细节,以便能按照它实现(在纸上或在程序中)全部预期的结果。回想一下巧克力蛋糕的算法(食谱)。“混合这些原料并进行烹饪”不够详细,但描述如何用勺子搅拌(右手拿起勺子,左手拿碗,用勺子在混合物中搅拌……),又加入了过多的细节。经验丰富的厨师所需要的食谱对于缺乏经验的人来说往往是“不够详细”的,食谱细节的多少要根据使用者的变化而变化。同样,经验丰富和缺乏经验的人,对于计算机算法的详细程度也有不同要求。学习算法和编程,能提升对算法的理解程度。

相关阅读:

国际贸易/现代经济学管理学教科书系列 [平

变频调速SVPWM技术的原理、算法与应用 [平

21世纪高等学校规划教材:电气工程基础 [平

知日·铁道(超值附赠绝赞日本铁道风景TOP2

蒋介石:1887-1975(上)(还原一个真实的蒋介

更多图书资讯可访问读书人图书频道:http://www.rEader8.cn/book/

热点排行