python编程基础王恺-Python语言程序设计

本书系统讲解Python程序设计语言以及基本程序设计、实现和调试方法等基础知识,通过概念引入、直观示例和错误分析等方法,使读者在全面了解Python技术历史、现状与发展趋势的基础上,能够系统地掌握Python基本概念、编程思想以及程序设计技术,具备熟练的Python编程技能和面向对象软件设计技术思想。

在Python开发者社群流行着一句话:“人生苦短,我用Python。”虽是一句戏言,但却揭示了Python语言的优势。Python是一种体现简单主义思想的语言,可以使用尽量少的代码完成更多工作。Python使开发者能够专注于解决问题而不是去搞明白语言本身。另外,Python有简单易懂的说明文档和丰富的第三方库,初学者很容易上手。

除了简单易学以外,Python还具有免费开源、跨平台性、高层语言、面向对象、丰富的库、胶水语言等优点,因此,在系统编程、图形界面开发、科学计算、文本处理、数据库编程、网络编程、Web开发、自动化运维、金融分析、多媒体应用、游戏开发、人工智能等方面得到广泛应用。不仅大量计算机专业人员选择使用Python进行快速开发,非计算机专业人员也纷纷选择Python帮助自己解决专业问题。根据TIOBE的最新排名,Python已超越C#,与Java、C、C++一起成为全球前四大流行语言。

Python的发展也给高校编程课程的教学带来了新的方向,很多高校纷纷开设相关课程。目前,Python的教程很多,但从高校本科教学需求出发,真正体现通过编程解决实际问题的理念的教程还不多。本书正是基于这样的思路和理念,由南开大学计算机学院的教师结合多年教学和项目开发实践经验编写而成,希望能够为高校理工科学生提供一本理论和实践兼备的Python编程入门教材。

在编写上,我们强调通过问题的解决过程向读者展示程序设计的本质以及Python程序的编写方法,使读者能够在有限时间内快速掌握Python编程并初步具备利用Python语言解决实际应用问题的能力。本书的特色包括:

1)针对每一个知识点提供了相关程序实例,实例的规模循序渐进,使读者更直观地理解Python编程语言的基本语法和程序设计方法,并逐步提升解决问题的能力。

2)针对重点和难点知识,通过大量“提示”和“注意”向读者强调并详细说明不易理解或容易混淆的内容。

3)大多数章节提供了课后习题,供读者检验自己的学习情况,及时发现学习过程中存在的问题。

4)为学生和老师提供较为丰富的学习和教学资源,降低学习和教学的门槛。

本书共分为10章,各章主要内容如下。

第1章首先给出程序设计和Python语言的简单介绍,包括编译型语言和解释型语言的区别、Python发展史及其特点和应用领域。然后,以Windows和Linux平台为例介绍了Python 3.7.0的安装步骤。接着,通过一个简单的HelloWorld程序使读者对Python程序的运行方式、注释方法、编写规范和标准输入/输出方法有初步认识。最后,介绍了Python自带的IDLE开发环境的使用方法。

第2章首先给出变量的定义方法和Number、String、List等常用的Python数据类型,通过这部分内容,读者可掌握利用计算机存储数据的方法。然后,介绍常用的运算符,包括占位运算符、算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、身份运算符、成员运算符和序列运算符。通过这部分内容,读者可掌握不同类型数据所支持的运算及运算规则。最后,介绍条件和循环两种语句结构。通过这部分内容,读者可以设计程序来解决具有更复杂逻辑结构的问题。

第3章首先介绍函数的定义与调用方法,以及与函数定义和调用相关的参数列表、返回值等内容。然后,介绍模块和包的概念与作用,以及模块和包的使用方法。接着,介绍变量的作用域,包括全局变量、局部变量的定义和使用方法以及global、nonlocal关键字的作用。最后,介绍函数相关的高级应用,包括递归函数、高阶函数、lambda函数、闭包和装饰器。

第4章首先介绍类与对象的概念以及它们的定义和使用方法,并给出Python类中包括构造方法和析构方法在内的常用内置方法的作用。然后,介绍继承与多态的概念与作用,并给出它们的具体实现方法。最后,介绍类与对象相关的高级应用,包括与类相关的3个内置函数(isinstance、issubclass和type)、类方法、静态方法、动态扩展类与实例、

__slots__、@property、元类、单例模式和鸭子类型。

第5章首先介绍可变类型与不可变类型的概念和区别。然后,在第2章内容的基础上进一步介绍列表、元组、集合和字典这些数据类型的更多使用方法。最后,介绍关于序列、集合和字典的一些高级应用,包括切片、列表生成表达式、生成器和迭代器。

第6章在第2章内容的基础上进一步介绍字符串的使用方法,包括字符串常用操作、格式化方法及正则表达式。在正则表达式部分将给出一个简单的爬虫程序示例,供读者参考。

第7章首先介绍os模块的使用,通过os模块可以方便地使用操作系统的相关功能,如创建目录、删除目录等。然后,介绍文件读写操作,利用文件进行数据的长期保存。接着,介绍一维数据和二维数据的概念,以及对可用于存储一维/二维数据的CSV格式文件的操作方法。最后,介绍异常相关的内容,包括异常的定义、分类和处理。

第8章介绍Python多线程与多进程编程的一些基本方法。使用多线程模块threading提供的Thread、Lock、Condition、Queue、Barrier等类,实现多线程创建、线程间的同步和通信。使用多进程模块multiprocessing提供的Process、Pool、Queue、Pipe、Lock等类,实现子进程创建、进程池(批量创建子进程并管理子进程数量上限)以

王恺,南开大学计算机控制与工程学院副教授,南开大学计算机基础教学部副主任,博士,常年从事计算机程序设计、数据结构与算法、大学计算机基础等基础课程的教学工作。

前言

第1章 初识Python 1

1.1 Python的基本概念 1

1.1.1 编译型语言与解释型语言 1

1.1.2 Python的发展史 3

1.1.3 Python的特点及应用领域 4

1.2 Python语言环境的安装 7

1.2.1 在Windows平台上安装Python语言环境 8

1.2.2 在Linux平台上安装Python语言环境 10

1.3 第一个Python程序:HelloWorld 13

1.3.1 中文编码 14

1.3.2 单行注释 14

1.3.3 多行注释 15

1.3.4 书写规范 15

1.3.5 输入和输出 16

1.4 IDLE环境 18

1.4.1 启动IDLE 18

1.4.2 创建Python脚本 18

1.4.3 常用的编辑功能 20

1.5 本章小结 21

1.6 课后习题 21

第2章 Python的基础语法 23

2.1 变量 23

2.1.1 定义一个变量 23

2.1.2 同时定义多个变量 24

2.2 数据类型 25

2.2.1 Number 25

2.2.2 String 26

2.2.3 List 28

2.2.4 Tuple 30

2.2.5 Set 31

2.2.6 Dictionary 32

2.3 运算符 33

2.3.1 占位运算符 33

2.3.2 算术运算符 34

2.3.3 赋值运算符 35

2.3.4 比较运算符 36

2.3.5 逻辑运算符 37

2.3.6 位运算符 37

2.3.7 身份运算符 39

2.3.8 成员运算符 40

2.3.9 序列运算符 41

2.3.10 运算符优先级 41

2.4 条件语句 42

2.4.1 if、elif、else 44

2.4.2 pass 45

2.5 循环语句 46

2.5.1 for循环 47

2.5.2 while循环 48

2.5.3 索引 49

2.5.4 break 50

2.5.5 continue 51

2.5.6 else 51

2.6 本章小结 52

2.7 课后习题 52

第3章 函数 57

3.1 函数的定义与调用 57

3.2 参数列表与返回值 58

3.2.1 形参 59

3.2.2 实参 59

3.2.3 默认参数 60

3.2.4 关键字参数 61

3.2.5 不定长参数 62

3.2.6 拆分参数列表 64

3.2.7 返回值 65

3.3 模块 66

3.3.1 import 67

3.3.2 from import 70

3.3.3 包 71

3.3.4 猴子补丁 72

3.3.5 第三方模块的获取与安装 73

3.4 变量的作用域 73

3.4.1 局部变量 74

3.4.2 全局变量 74

3.4.3 global关键字 75

3.4.4 nonlocal关键字 76

3.5 高级应用 77

3.5.1 递归函数 77

3.5.2 高阶函数 78

3.5.3 lambda函数 78

3.5.4 闭包 79

3.5.5 装饰器 80

3.6 本章小结 83

3.7 课后习题 83

第4章 面向对象 87

4.1 类与对象 87

4.1.1 类的定义 87

4.1.2 创建实例 88

4.1.3 类属性定义及其访问 89

4.1.4 类中普通方法定义及调用 91

4.1.5 私有属性 92

4.1.6 构造方法 93

4.1.7 析构方法 95

4.1.8 常用内置方法 96

4.2 继承与多态 98

4.2.1 什么是继承 98

4.2.2 如何继承父类 99

4.2.3 方法重写 100

4.2.4 super方法 101

4.3 高级应用 103

4.3.1 内置函数isinstance、issubclass和type 103

4.3.2 类方法 104

4.3.3 静态方法 104

4.3.4 动态扩展类与实例 105

4.3.5 __slots__ 106

4.3.6 @property 107

4.3.7 元类 108

4.3.8 单例模式 109

4.3.9 鸭子类型 111

4.4 本章小结 112

4.5 课后习题 112

第5章 序列、集合和字典 116

5.1 可变类型与不可变类型 116

5.2 列表 117

5.2.1 创建列表 117

5.2.2 拼接列表 118

5.2.3 复制列表元素 119

5.2.4 查找列表元素 120

5.2.5 插入列表元素 121

5.2.6 删除列表元素 121

5.2.7 获取列表中的最大元素 122

5.2.8 获取列表中的最小元素 122

5.2.9 统计元素出现的次数 122

5.2.10 计算列表长度 123

5.2.11 列表中元素排序 123

5.3 元组 124

5.3.1 创建元组 125

5.3.2 创建具有单个元素的元组 125

5.3.3 拼接元组 126

5.3.4 获取元组中的最大元素 126

5.3.5 获取元组中的最小元素 126

5.3.6 元组的不变性 126

5.4 集合 127

5.4.1 创建集合 127

5.4.2 元素唯一性 127

5.4.3 插入集合元素 127

5.4.4 交集 128

5.4.5 并集 128

5.4.6 差集 129

5.4.7 对称差集 129

5.4.8 子集 129

5.4.9 父集 130

5.5 字典 130

5.5.1 创建字典 130

5.5.2 初始化字典中的元素 130

5.5.3 修改/插入字典元素 131

5.5.4 删除字典中的元素 132

5.5.5 计算字典中元素的个数 133

5.5.6 清除字典中的所有元素 133

5.5.7 判断字典中是否存在键 133

5.5.8 拼接两个字典 134

5.5.9 获取字典中键的集合 135

5.5.10 获取字典中值的集合 135

5.5.11 获取字典中的元素数组 135

5.5.12 浅拷贝 136

5.5.13 深拷贝 137

5.6 高级应用 138

5.6.1 切片 138

5.6.2 列表生成表达式 138

5.6.3 生成器 139

5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值