前 言
本书假设你是一位先前没有任何程序设计经验的程序员新手。那么,什么是程序设计呢?程序设计是指使用程序设计语言编写程序以解决问题。不论你使用的是哪种程序设计语言,解决问题和程序设计的根本都是一致的。你可以使用任何一种像Python、Java、C++或C#这样的高级程序设计语言来学习程序设计。一旦知道如何使用其中一门语言编写程序,那么如何使用其他语言编写程序就很容易,因为编写程序的基本技能都是一样的。那么,使用Python学习程序设计的优势在哪里呢?Python易于学习,且编程有趣。Python代码简单、短小,易读、直观,而且功能强大,这样对初学者而言,用它来介绍计算和解决问题是非常有效的。鼓励初学者通过创建图形学习程序设计。使用Python学习程序设计的一个很大原因在于可以从一开始就使用图形来学习程序设计。我们在第1~6章使用Python内嵌的Turtle图形模块,它是一个介绍程序设计基本概念和技术的很好的教学工具。我们在第9章介绍Python内嵌的Tkinter,它是开发复杂图形用户界面以及学习面向对象程序设计的一个重要工具。Turtle和Tkinter都相当简单且易于使用。更重要的是,它们都是教授程序设计和面向对象程序设计基础的非常有价值的教学工具。为了方便教师更灵活地使用本书,我们在第1~6章的末尾会讲到Turtle,所以,可以将它们作为选讲内容跳过去。本书以问题驱动的方式讲授如何解决问题,这种方式的重点放在问题的解决而不是语法上。我们使用一些涉及范围很广的有趣例子来激发学生学习程序设计的兴趣。鉴于本书的主线是解决问题,这里会介绍解决问题中用到的Python语法和库。为了支持问题驱动方式的程序设计教学,本书提供了大量难易程度各异的问题来激发学生的兴趣。为适用于各个专业的学生,这些问题涉及很多应用领域,例如数学、科学、商业、金融管理、游戏、动画和多媒体等。Python中的所有数据都是对象。我们从第3章开始介绍和使用对象,但是如何定义类将从第7章开始。本书首先将重点放在基础上:在编写自定制类之前介绍像选择、循环和函数这样的基本程序设计概念和技术。教授程序设计的最佳方式是通过实例,而学习程序设计的唯一方法就是通过实践。本书用实例解释基本概念,同时提供了大量不同难度的习题供学生练习。我们的目标是使用大量有趣的例子和习题来教授学生如何解决问题以及如何进行程序设计。目 录前言第一部分 程序设计基础[第1章 计算机、程序和Python概述 1.1 引言 ](https://yq.aliyun.com/articles/117581)[1.2 什么是计算机 1.2.1 中央处理器 1.2.2 比特和字节 1.2.3 内存 1.2.4 存储设备 1.2.5 输入和输出设备 1.2.6 通信设备 ](https://yq.aliyun.com/articles/117592)[1.3 程序设计语言 1.3.1 机器语言 1.3.2 汇编语言 1.3.3 高级语言 ](https://yq.aliyun.com/articles/117601)[1.4 操作系统 1.4.1 控制和管理系统行为 1.4.2 调度和分配系统资源 1.4.3 调度操作 ](https://yq.aliyun.com/articles/117608)1.5 Python的历史 [1.6 开始学习Python 1.6.1 启动Python 1.6.2 创建Python源代码文件 1.6.3 使用Python完成算术运算 ](https://yq.aliyun.com/articles/117625)[1.7 程序设计风格和文档 1.7.1 恰当的注释和注释风格 1.7.2 恰当的空格 ](https://yq.aliyun.com/articles/117627)[1.8 程序设计错误 1.8.1 语法错误1.8.2 运行时错误 1.8.3 逻辑错误 ](https://yq.aliyun.com/articles/117637)[1.9 开始学习图形化程序设计 1.9.1 绘制图形并给图形添加颜色 1.9.2 将笔移到任何位置 1.9.3 绘制奥林匹克环标志 关键术语 ](https://yq.aliyun.com/articles/117647)本章总结
[第2章 基本程序设计 2.1 引言 ](https://yq.aliyun.com/articles/117659)2.2 编写一个简单的程序 2.3 从控制台读取输入 2.4 标识符 2.5 变量、赋值语句和赋值表达式 2.6 同时赋值 2.7 定名常量 [2.8 数值数据类型和运算符 2.8.1 运算符/、//和** 2.8.2 运算符% 2.8.3 科学记数法 ](https://yq.aliyun.com/articles/117727)2.9 计算表达式和运算符优先级 2.10 增强型赋值运算符 2.11 类型转换和四舍五入 2.12 实例研究:显示当前时间 2.13 软件开发流程 [2.14 实例研究:计算距离 关键术语 ](https://yq.aliyun.com/articles/117771)本章总结
[第3章 数学函数、字符串和对象 3.1 引言 ](https://yq.aliyun.com/articles/117841)3.2 常见的Python函数 [3.3 字符串和字符 3.3.1 ASCII码 3.3.2 统一码 3.3.3 函数ord和chr 3.3.4 转义序列 3.3.5 不换行打印 3.3.6 函数str 3.3.7 字符串连接操作 3.3.8 从控制台读取字符串 ](https://yq.aliyun.com/articles/117864)3.4 实例研究:最小数量的硬币 3.5 对象和方法简介 [3.6 格式化数字和字符串 3.6.1 格式化浮点数 3.6.2 用科学记数法格式化 3.6.3 格式化成百分数 3.6.4 调整格式 3.6.5 格式化整数 3.6.6 格式化字符串 ](https://yq.aliyun.com/articles/117893)3.7 绘制各种图形 [3.8 绘制带颜色和字体的图形 关键术语 ](https://yq.aliyun.com/articles/117907)本章总结