正版图书,可开发票,请放心购买。
¥ 30.36 4.4折 ¥ 69 全新
仅1件
作者张基温编著
出版社清华大学出版社
ISBN9787302504542
出版时间2017-03
装帧平装
开本16开
定价69元
货号9286254
上书时间2024-12-22
第1单元 Python起步 1
1.1 程序设计语言与Python 1
1.1.1 计算机程序设计语言 1
1.1.2 高级程序设计语言分类 3
1.1.3 Python及其特点 6
1.1.4 Python模块与脚本文件 8
练习1.1 11
1.2 Python数值对象类型 12
1.2.1 Python数据类型 12
1.2.2 Python内置数值类型 13
1.2.3 Decimal和Fraction 15
练习1.2 16
1.3 Python数据对象、变量与赋值 17
1.3.1 Python可变对象与不可变对象 17
1.3.2 Python变量与赋值操作 18
1.3.3 Python垃圾回收与对象生命期 21
1.3.4 Python标识符与保留字 22
练习1.3 23
1.4 数值计算——万能计算器 24
1.4.1 内置算术操作符与算术表达式 24
1.4.2 内置数学函数 27
1.4.3 math模块 29
练习1.4 31
1.5 输入与输出 32
1.5.1 回显与print()函数的基本用法 32
1.5.2 转义字符与print()函数的格式控制 33
1.5.3 input()函数 37
练习1.5 37
第2单元 Python程序结构 38
2.1 命题与判断 39
2.1.1 布尔类型 39
2.1.2 比较表达式 39
2.1.3 逻辑表达式 40
2.1.4 身份判定操作 43
练习2.1 43
2.2 选择结构 45
2.2.1 if-else型选择结构 45
2.2.2 if-else嵌套与if-elif选择结构 47
练习2.2 49
2.3 循环结构 50
2.3.1 while语句 51
2.3.2 for语句 52
2.3.3 循环嵌套 54
2.3.4 循环中断与短路控制 56
2.3.5 穷举 59
2.3.6 迭代 61
2.3.7 确定性模拟 66
2.3.8 随机模拟与random模块 68
练习2.3 71
2.4 函数 73
2.4.1 函数调用、定义与返回 73
2.4.2 基于函数的变量作用域 77
2.4.3 函数参数技术 79
2.4.4 函数标注 83
2.4.5 递归 84
2.4.6 lambda表达式 88
练习2.4 89
2.5 程序异常处理 92
2.5.1 异常处理的基本思路与异常类型 93
2.5.2 try-except语句 94
2.5.3 控制异常捕获范围 96
2.5.4 else子句与finally子句 96
2.5.5 异常的人工显式触发:raise与assert 97
练习2.5 98
第3单元 容器 100
3.1 序列容器 100
3.1.1 序列对象的构建 100
3.1.2 序列通用操作 102
3.1.3 列表的个性化操作 108
3.1.4 字符串的个性化操作 111
3.1.5 字符串编码与解码 114
3.1.6 字符串格式化与format()方法 116
3.1.7 正则表达式 119
练习3.1 125
3.2 无序容器 129
3.2.1 字典 129
3.2.2 集合 132
练习3.2 135
3.3 迭代器、生成器与推导表达式 138
3.3.1 迭代器 138
3.3.2 生成器 139
3.3.3 推导表达式 144
练习3.3 147
第4单元 面向类的程序设计 150
4.1 类及其组成 150
4.1.1 类模型及其语法 150
4.1.2 类对象、实例对象与__init__ ()方法 152
4.1.3 最小特权原则与对象成员访问限制 155
4.1.4 实例方法、静态方法与类方法 158
练习4.1 159
4.2 Python内置的类属性、方法与函数 161
4.2.1 内置的类属性 161
4.2.2 获取类与对象特征的内置函数 162
4.2.3 操作符重载 166
4.2.4 可定制的内置方法 168
练习4.2 176
4.3 类的继承 178
4.3.1 类的继承及其关系测试 178
4.3.2 新式类与object 180
4.3.3 子类访问父类成员的规则 182
4.3.4 子类实例的初始化与super 182
练习4.3 187
第5单元 Python数据处理
今天,人们已经进入信息时代。在信息时代,人类社会的支撑资源已经从物质和能源为中心,转移到了以信息资源为中心。计算机的主要职能也从早先的“计算”转移到了以数据处理(data processing)为中心的信息处理。数据是信息的记录形式。数据处理主要由对数据的采集、存储、检索、加工、变换和传输等环节组成。这些处理必须以强大的数据存储为支撑,并且还依赖于机器的速度和软件的处理方式。迄今为止,数据处理的软件技术已经呈现出文件系统和数据库两大基本技术平台。Python作为一种程序设计语言,也具有了对文件技术和数据库技术的支撑。
5.1 Python文件操作
5.1.1 文件对象及其操作过程
1. 文件及其类型
文件(file)是建立在外存中的数据容器,由这种容器类可以创建具体的文件实例对象。这种基于外存的容器与基于内存的容器之间最大的区别在于所存放的内容可以长期保存,不受停电、关机、程序结束的影响。
文件可以有如下一些分类方法。
1)按照存储的内容分类
按照存储的内容性质,文件可以分为程序文件和数据文件两大类。程序文件存储的内容是程序。Python程序文件以.py为后缀,而数据文件的后缀则以内容和用途等不同而异。
2)按照读写顺序分类
按照读写方式,文件分为顺序读写文件(简称顺序文件)和随机读写文件(简称随机文件)两种。顺序文件只能按照先后顺序进行读写,程序文件就是顺序文件。随机文件可以在文件的任意位置进行读写。
3)按照编码方式分类
按照编码方式,数据文件分为文本文件(text file)和二进制文件(binary file)两种。它们以文件名后缀相区分,文本文件的文件名后缀为.txt,二进制文件的文件名后缀为.dat。
文本文件以字符为单位进行存储,即文本文件是字符串组成的文件。纯文本文件(txt文件)、HTML文件和XML文件都是常见的文本文件。文本文件的存储与解释,与采用的编码方式有关,并且需要编码/解码环节。最早的编码采用ASCII,用1B(8b)表示一个字符。后来出现了Unicode编码,用4B(32b)表示一个字符。ASCII占用的存储空间小,但能表示的字符数量少。Unicode表示的符号数量达100多万个(囊括了世界上绝大部分语言文字),但是占用的存储空间也很大。为此人们开发出了UFT-8,它可以根据符号的种类自动选择编码的长短,例如,用1B表示英文字符,用3B(24b)表示中文文字等。Python 3.0以后开始全面支持Unicode,并能够自动对文本进行UFT-8编码和解码处理。
二进制文件以字节为单位进行存储,即二进制文件是字节串组成的文件。一般不可显示的数据,如音频、图像、视频等数据都以二进制文件存储。对二进制文件的操作,不需要任何形式的编码和解码处理。为了将音频、图像、视频等信号转变为字节串,需要专门的软件。这些软件可以由一些序列化模块提供,如struct、pickle、json、marshal、shelve等。
4)按照缓冲区的使用情况分类
缓冲区是内存中的一个区域,它一端连接CPU,另一端连接外部存储设备。如图5.1所示,缓冲区分为输入缓冲区和输出缓冲区。
图5.1 数据文件与缓冲区
文件缓冲区可以提高高速设备的效率。因为CPU是高速设备,外部存储器是低速设备。若两种设备直接连接进行数据交换,必然要使高速设备按照低速设备的速度工作,这样就大大降低了高速设备的使用效率。在两者之间增加一个缓冲区,使高速设备只在需要时才与缓冲区打交道,其他时间可以从事别的工作,从而大大提高了使用效率。这样也就避免频繁地启动低速的外部存储设备。外部存储设备一般采用磁盘存储器。磁盘存储器每一次读写都要移动磁头并寻找磁道扇区。使用缓冲区,可以将要写入磁盘的数据装满缓冲区后才一起送到磁盘,不用则每一次读写操作都要启动一次磁头。
文件操作比较依赖操作系统的I/O控制。通常标准I/O可以提供3种类型的缓冲区。
(1)全缓冲区。这种缓冲方式要求填满整个缓冲区后才进行I/O系统调用操作。对于磁盘文件的操作通常使用全缓冲的方式访问。
(2)行缓冲区。在这种情况下,当在输入和输出中遇到换行符时,标准I/O库函数将会执行系统调用操作。当所操作的流涉及一个终端时(例如标准输入和标准输出),使用行缓冲方式。因为标准I/O库每行的缓冲区长度是固定的,所以只要填满了缓冲区,即使还没遇到换行符,也会执行I/O系统调用操作。
(3)无缓冲区。无缓冲区是指不进行缓存,直接调用系统调用。
2. 文件对象
在Python中,一切皆对象。对于文件操作来说,程序要创建的“对象”并非文件,而是应用程序与要读写的文件之间的通道。这个通道在Windows系统中称为文件句柄(file handle),在UNIX/Linux系统中称为文件描述符,也可以将其统称为文件标签。通过它,可以获取或建立文件的有关信息。只有这个通道建立了,才能有效地进行文件的读写等 操作。
此外,在创建文件对象的同时,系统还会自动创建3个标准I/O对象。
(1)stdin(标准输入)。
(2)stdout(标准输出)。
(3)stderr(标准错误输出)。
这3个对象都与终端连接,可以方便数据的输入与输出。
3. 文件对象的操作过程
不管是文本文件,还是二进制文件,它们的操作过程大体上都分为三步:创建文件对象(即打开文件)、文件读写等操作和关闭文件。
1)打开文件
打开文件是创建文件对象的操作,如上所述,创建了文件对象,就拿到了操作系统对这次文件操作的令牌——文件句柄或文件描述符,就可以获得对文件进行操作的权限,以及可以使用的缓冲区。
2)文件操作
文件对象创建之后,就可以对文件进行操作了。操作内容的核心是读写。读就是从外存中将数据读到内存程序中,写就是将程序中的数据写向外存。
3)关闭文件
如前所述,在文件操作时,各种操作的数据都会首先保存在缓冲区中,除非缓冲区满或执行关闭操作,否则不会将缓冲区中的内容写到外存。文件关闭操作的主要作用是将留在缓冲区的信息最后一次写入外存,切断程序与外存中该文件的通道。如果不执行文件关闭——关闭文件标签,就停止程序运行,就有可能丢失信息。
文件关闭要使用文件对象的方法close()。
5.1.2 文件打开函数open()
1.open()的语法
通常,把文件对象的创建形象地称为文件打开。在Python中,最常用的文件打开方式是使用Python的内置函数open()。它执行后创建一个文件对象和3个标准I/O对象,并返回一个文件描述符(句柄)。其语法如下。
open(filename[,mode[,buffering[,encoding[,errors[, newline[,closefd=True]]]]]])
2. 参数说明
1)filename:文件名
filename是要打开的文件名,是open()函数中唯一不可或缺的参数。通常,上述filename是包含了文件存储路径在内的完整文件名。只有被打开的文件位于当前工作路径下时,才可以忽略路径部分。
为了把文件建立在特定位置,可以在交互环境下用os模块中的os.mkdir()函数。
代码5-1 创建一个文件夹。
>>> import os
>>> os.mkdir(('D:\myPythonTest'))
如果在给定路径或当前路径下找不到指定的文件名,将会触发IOError。
2)mode:文件打开的模式
文件打开时需要指定打开模式。打开模式主要用于向系统请求下列资源。
(1)打开后是进行文本文件操作(以't'表示),还是二进制文件操作(以'b'表示),以便系统进行相应的编码配置。
(2)打开后是要进行读操作(以'r'或缺省表示),还是写操作(以'w'表示覆盖式从头写,用'a'表示在文件尾部追加式写)或读写操作(以'+'表示),以便系统为其配备相应的缓冲区、建立相应的标准I/O对象并初始化文件指针位置是在文件头('r'或缺省、'w'),还是在文件尾('a')。
(3)用'U'表示以通用换行符模式打开。一般说来,不同平台用来表示行结束的符号是不同的, 例如 \n、\r, 或者 \r\n 。如果只写一种处理换行符的方法,就无法被其他平台认可,若要为每一个平台都写一个方法又太麻烦了。为此,Python 2.3 创建了一个特殊换行符newline(\n)。当使用 'U' 标志打开文件时,所有的行分隔符(或行结束符,无论它原来是什么)通过 Python 的输入方法(例如read())返回时都会被替换为newline(\n),同时还用对象的 newlines 属性记录它曾“看到的”文件的行结束符。
上述基本的打开模式符号可以组合成表5.1所示的文件打开模式。
表5.1 组合的文件打开模式
文件打开模式
操 作 说 明
文本文件
二进制文件
r
rb
以只读方式打开,是默认模式,必须保证文件存在
rU 或 Ua
以读方式打开文本文件, 同时支持文件含特殊字符(如换行符)
w
wb
以写方式新建一个文件,若已存在则自动清空
a
ab
以追加模式打开:若文件存在,则从 EOF 开始写;若文件不存在,则创建新文件写
r +
rb+
以读写模式打开
w+
wb+
以读写模式新建一个文件(参见 w)
a+
ab+
以读写模式打开(参见 a)
3)buffering:设置buffer
0:代表buffer关闭(只适用于二进制模式)。
1:代表line buffer(只适用于文本模式)。
>1:表示初始化的buffer大小。
若不提供该参数或者给定负值,则按照如下系统默认缓冲机制进行。
(1)二进制文件使用固定大小缓冲区。缓冲区大小由io.DEFAULT_BUFFER_SIZE指定,一般为4096B或8192B。
(2)对文本文件,若isatty()返回True,使用行缓冲区;其他与二进制文件相同。
4)errors:报错级别
strict:字符编码出现问题时会报错。
……
彰显“计算思维+语言艺术+工程规范”的程序设计教育理念。
概念力求精准,突出思想性、启发性、本质性。
结构力求严谨、紧凑,便于知识总结、梳理。
例题力求经典,例程力求简短,便于阅读、理解。
素材力求丰富,创造一个良好的知识建构环境和后期学习参考。
— 没有更多了 —
以下为对购买帮助不大的评价