基本信息

编辑推荐
以“基础先行”方法介绍基本程序设计概念和方法,帮助学生循序渐进地学习所有必需和重要的基本概念。
以“问题驱动”方法讲授程序设计技术,强调问题求解,而非语法。通过广泛的趣味性实例(涉及数学、自然科学、商业、金融、游戏、动画和多媒体辐域)来激发学生的学习兴趣,为求解这些问题,适时地引入相关的语法和库。
可以灵活介绍GUI相关主题。第1-6章使用内置的Turtle图形模块,其余部分使用Tkinter,这两种工具都是简单、易学的程序设计教学工具。每章的开始都有GUI实例,每章末尾还有专门的GUI练习。
内容简介
作译者
之前曾是普度大学计算机科学系副教授,并曾两次获得普度大学杰出研究奖。他所编写的Java教程在羹国大学Java课程中采用率最高。
目录
出版者的话
译者序
前言
第一部分 程序设计基础
第1章 计算机、程序和Python概述 2
1.1 引言 2
1.2 什么是计算机 3
1.2.1 中央处理器 4
1.2.2 比特和字节 4
1.2.3 内存 5
1.2.4 存储设备 5
1.2.5 输入和输出设备 6
1.2.6 通信设备 7
1.3 程序设计语言 8
1.3.1 机器语言 8
1.3.2 汇编语言 8
1.3.3 高级语言 8
1.4 操作系统 10
1.4.1 控制和管理系统行为 10
译者序
Introduction to Programming Using Python
很荣幸在翻译完Y. Daniel Liang的《Introduction to Java Programming, Comprehensive, Eighth Edition》之后能成为他这本Python语言编程书的译者。经过这么长的时间,终于可以交稿了,下面我想结合自己的翻译过程跟大家分享一些感触。
我觉得最值得大家重视的是作者不论在《Java语言程序设计》还是在本书中所采用的以问题驱动方式学习程序设计的方法。我们需要明确一点,编写程序是为了解决实际问题,而不是纯粹为了做题。但是,反过来讲,只有做大量的习题才能从做题过程中培养程序设计的能力,从而达到解决问题的目的,因此希望大家在学习过程中明确什么是方式,什么是
目标。
当然,本书是讲Python的,就不得不说说Python的优点。Python语法简洁、易读、易扩展,具有丰富和强大的类库,一些知名大学已经采用它来教授程序设计课程。例如,麻省理工学院的计算机科学及编程导论课程就用Python教授。Python的设计者在开发时的指导思想就是对于一个特定问题有一种最好的方法来解决就好,所以希望大家在学习过程中能不断体会到这门语言之美。
在整个翻译工作结束时,非常感谢一直负责和我联系的王春华编辑。我一直都不是个按时交稿的译者,教学工作经常会干扰到翻译进度,但她总是耐心等待。翻译接近尾声时,我因为眼睛充血,有些收尾的工作一直在拖延,感谢王老师的理解和支持。我也要感谢做过一些初期协助工作的同学,他们是段超伟、赵欣秋、陈峰、湛孝丰、郝一鸣、吴裕峰、薛二中、王昕伟、陈帅、栾锦泰,特别是段超伟同学,在本书出版时他应该已经在清华大学攻读硕士学位了,祝福他在新的学校取得更大的成绩。当然,也要感谢家人、朋友和同事在翻译过程中对我的生活以及工作的支持,没有他们的支持,我可能没有时间和精力来完成这本书的翻译工作。
由于时间仓促,译者水平有限,译文中难免存在欠妥和纰漏之处,恳请广大读者不吝赐教。
译者
2014年10月
前言
本书假设你是一位先前没有任何程序设计经验的程序员新手。那么,什么是程序设计呢?程序设计是指使用程序设计语言编写程序以解决问题。不论你使用的是哪种程序设计语言,解决问题和程序设计的根本都是一致的。你可以使用任何一种像Python、Java、C++或C#这样的高级程序设计语言来学习程序设计。一旦知道如何使用其中一门语言编写程序,那么如何使用其他语言编写程序就很容易,因为编写程序的基本技能都是一样的。
那么,使用Python学习程序设计的优势在哪里呢?Python易于学习,且编程有趣。Python代码简单、短小,易读、直观,而且功能强大,这样对初学者而言,用它来介绍计算和解决问题是非常有效的。
鼓励初学者通过创建图形学习程序设计。使用Python学习程序设计的一个很大原因在于可以从一开始就使用图形来学习程序设计。我们在第1~6章使用Python内嵌的Turtle图形模块,它是一个介绍程序设计基本概念和技术的很好的教学工具。我们在第9章介绍Python内嵌的Tkinter,它是开发复杂图形用户界面以及学习面向对象程序设计的一个重要工具。Turtle和Tkinter都相当简单且易于使用。更重要的是,它们都是教授程序设计和面向对象程序设计基础的非常有价值的教学工具。
为了方便教师更灵活地使用本书,我们在第1~6章的末尾会讲到Turtle,所以,可以将它们作为选讲内容跳过去。
本书以问题驱动的方式讲授如何解决问题,这种方式的重点放在问题的解决而不是语法上。我们使用一些涉及范围很广的有趣例子来激发学生学习程序设计的兴趣。鉴于本书的主线是解决问题,这里会介绍解决问题中用到的Python语法和库。为了支持问题驱动方式的程序设计教学,本书提供了大量难易程度各异的问题来激发学生的兴趣。为适用于各个专业的学生,这些问题涉及很多应用领域,例如数学、科学、商业、金融管理、游戏、动画和多媒体等。
Python中的所有数据都是对象。我们从第3章开始介绍和使用对象,但是如何定义类将从第7章开始。本书首先将重点放在基础上:在编写自定制类之前介绍像选择、循环和函数这样的基本程序设计概念和技术。
教授程序设计的最佳方式是通过实例,而学习程序设计的唯一方法就是通过实践。本书用实例解释基本概念,同时提供了大量不同难度的习题供学生练习。我们的目标是使用大量有趣的例子和习题来教授学生如何解决问题以及如何进行程序设计。
教学特色
本书使用了下面的模块:
学习目标列出学生应该学会的内容,这样在学完这章之后,学生能够判断自己是否达到这个目标。
引言提出一个代表性问题,以便学生对该章内容有一个概括了解。
关键点强调每节中的重要概念。
检查点提供复习题帮助学生复习相关内容并评估掌握的程度。
问题通过精心挑选,以一种容易掌握的形式教授问题求解和程序设计的概念。本书使用许多短小的、简单的以及令人兴奋的例子来演示重要的想法。
关键术语提供对本章重要术语的快速参考。
本章总结回顾学生应该理解和记住的重要主题,帮助他们加强对该章所学关键概念的理解。
测试题测试题是在线的,用于学生自我测试对程序设计概念和技术的掌握程度。
编程题为学生提供应用新技巧的机会。题目的难度等级分为容易(无星号)、适度(*)、困难(**)或具有挑战性(***)。学习程序设计的秘诀就在于练习,练习,再练习。为了达到这个目标,本书提供了大量的练习题。
注意、提示和警告穿插在整本书中,提供了有价值的建议以及程序开发要点。
序言
Introduction to Programming Using Python
文艺复兴以来,源远流长的科学精神和逐步形成的学术规范,使西方国家在自然科学的各个领域取得了垄断性的优势;也正是这样的优势,使美国在信息技术发展的六十多年间名家辈出、独领风骚。在商业化的进程中,美国的产业界与教育界越来越紧密地结合,计算机学科中的许多泰山北斗同时身处科研和教学的最前线,由此而产生的经典科学著作,不仅擘划了研究的范畴,还揭示了学术的源变,既遵循学术规范,又自有学者个性,其价值并不会因年月的流逝而减退。
近年,在全球信息化大潮的推动下,我国的计算机产业发展迅猛,对专业人才的需求日益迫切。这对计算机教育界和出版界都既是机遇,也是挑战;而专业教材的建设在教育战略上显得举足轻重。在我国信息技术发展时间较短的现状下,美国等发达国家在其计算机科学发展的几十年间积淀和发展的经典教材仍有许多值得借鉴之处。因此,引进一批国外优秀计算机教材将对我国计算机教育事业的发展起到积极的推动作用,也是与世界接轨、建设真正的世界一流大学的必由之路。
机械工业出版社华章公司较早意识到“出版要为教育服务”。自1998 年开始,我们就将工作重点放在了遴选、移译国外优秀教材上。经过多年的不懈努力,我们与Pearson,McGraw-Hill,Elsevier,MIT,John Wiley & Sons,Cengage 等世界著名出版公司建立了良好的合作关系, 从他们现有的数百种教材中甄选出Andrew S. Tanenbaum,Bjarne Stroustrup,Brain W. Kernighan,Dennis Ritchie,Jim Gray,Afred V. Aho,John E. Hopcroft,Jeffrey D. Ullman,Abraham Silberschatz,William Stallings,Donald E. Knuth,John L. Hennessy,Larry L. Peterson 等大师名家的一批经典作品,以“计算机科学丛书”为总称出版,供读者学习、研究及珍藏。大理石纹理的封面,也正体现了这套丛书的品位和格调。
“计算机科学丛书”的出版工作得到了国内外学者的鼎力相助,国内的专家不仅提供了中肯的选题指导,还不辞劳苦地担任了翻译和审校的工作;而原书的作者也相当关注其作品在中国的传播,有的还专门为其书的中译本作序。迄今,“计算机科学丛书”已经出版了近两百个品种,这些书籍在读者中树立了良好的口碑,并被许多高校采用为正式教材和参考书籍。其影印版“经典原版书库”作为姊妹篇也被越来越多实施双语教学的学校所采用。
权威的作者、经典的教材、一流的译者、严格的审校、精细的编辑,这些因素使我们的图书有了质量的保证。随着计算机科学与技术专业学科建设的不断完善和教材改革的逐渐深化,教育界对国外计算机教材的需求和应用都将步入一个新的阶段,我们的目标是尽善尽美,而反馈的意见正是我们达到这一终极目标的重要帮助。华章公司欢迎老师和读者对我们的工作提出建议或给予指正,我们的联系方法如下:
华章网站:www.hzbook.com
电子邮件:hzjsj@hzbook.com
联系电话:(010)88379604
联系地址:北京市西城区百万庄南街1号
邮政编码:100037
媒体评论
本书特色
以“基础先行”方法介绍基本程序设计概念和方法,帮助学生循序渐进地学习所有必需和重要的基本概念。
以“问题驱动”方法讲授程序设计技术,强调问题求解,而非语法。通过广泛的趣味性实例(涉及数学、自然科学、商业、金融、游戏、动画和多媒体领域)来激发学生的学习兴趣,为求解这些问题,适时地引入相关的语法和库。
可以灵活介绍GUI相关主题。第1~6章使用内置的Turtle图形模块,其余部分使用Tkinter,这两种工具都是简单、易学的程序设计教学工具。每章的开始都有GUI实例,每章末尾还有专门的GUI练习。