Skip to content

Latest commit

 

History

History
366 lines (284 loc) · 16.2 KB

python_course.md

File metadata and controls

366 lines (284 loc) · 16.2 KB

Python大学实用教程

简介

本书面向零基础起点的学习者,以面向对象开发思想为核心,讲授Python语言的基本语法及其应用。全书共9章,包括编程语言的基础知识、Python开发环境的配置、Python内置对象类型、基本运算和语句、函数、类、模块和包、异常处理、读写文件。通过这些内容的学习,读者能够掌握Python的基础知识,并在学习过程中通过实例学习如何运用基础知识。

本书每章都配有矢量的习题,习题以编程实践为导向,学习者通过练习能够加深对基础知识的理解,并且初步体会到编程实践对大数据知识和能力的要求。

购买

  • 各大电商平台有售
  • 电子工业出版社天猫旗舰店

在线资源

源码和 PPT

以下代码仓库中包括本书的所有源码、习题答案以及供教学参考的PPT

https://github.com/qiwsir/PythonCourse

如果上述仓库不能访问,也可以通过如下方式下载同样内容。

链接: https://pan.baidu.com/s/149sTH9kS0QY6ZMv1KBVsqA 提取码: kjoq

辅助文章

在我的微信公众号【老齐教室】和博客上发布了很多关于Python编程语言的文章,供参考。

请阅读:Python编程文章汇总

视频课程

与本书相关的视频课程(注意:本视频课程不是本书标配,仅向读者推荐选用

Python零基础入门到实践

勘误与修订

相关术语说明:

  • 正文:不包含代码部分的文字内容
  • 正数:即从页面顶部开始向下计数
  • 倒数:即从页面底部开始向上计数
  • 原文:即原来的叙述。如果针对原来内容有修改,则用删除符号(删除符号)标示。
  • 修订:即相应内容修改之后的最终效果
  • 说明:对所修改内容的说明

版次:2019年3月第1版

印次:2019年3月第1次印刷

  1. 页码:001

    • 行数:正文,正数第2行
    • 原文:~~当然,~~现在本星球上的编程语言比较多,
    • 修订:现在本星球上的编程语言比较多,
    • 说明:删除原文中的“当然”
  2. 页码:001

    • 行数:正文,正数第3行
    • 原文:本章将简要介绍一些相关的基本知识,并最终确定本书要学习的语言Python。
    • 修订:编程语言的发展遵循着一定规律,其结构也符合特定的规章。本章将在对编程语言一般地简要理解基础上,最终确定本书要学习的语言Python。
    • 说明:将“本章将简要......知识,并”删除,并用指定内容替换。
  3. 页码:014

    • 行数:正文,正数第3行
    • 原文:特别推荐使用Ubuntu操作系统。
    • 修订:特别推荐Ubuntu操作系统。
    • 说明:删除“使用”二字。
  4. 页码:016

    • 行数:正文,倒数第8行
    • 原文:读者可以通过修改软连接,……,关键词就是“Ubuntu 修改软连接”
    • 修订:读者可以通过修改软链接,……,关键词就是“Ubuntu 修改软链接”
    • 说明:“连接”修改为“链接”。
  5. 页码:016

    • 行数:正文,倒数第4行
    • 原文:出现图2-2-4所示的界面。
    • 修订:出现图2-2-5所示的界面。
    • 说明:“图2-2-4”修改为“图2-2-5”
  6. 页码:017

    • 行数:正文,倒数第6行,倒数第4行。
    • 原文:即Python 3的软连接指向的是Python 3.5。…… 可以按照自己的需要修改软连接。
    • 修订:即Python 3的软链接指向的是Python 3.5。…… 可以按照自己的需要修改软链接。
    • 说明:“连接”修改为“链接”。
  7. 页码:021

    • 行数:图2-2-17文字说明第2行
    • 原文:注意写法,左后要有“\”
    • 修订:注意写法,最后要有“\”
    • 说明:“左”修改为“最”。
  8. 页码:024

    • 行数:图2-2-22的文字说明
    • 原文:如果只安装了Python 3或者修改了软连接
    • 修订:如果只安装了Python 3或者修改了软链接
    • 说明:“连接”修改为“链接”。
  9. 页码:025

    • 行数:“练习和编程2”的第3题。
    • 原文:在使用Ubuntu操作系统 …… 到第1章“练习和编程”
    • 修订:在Ubuntu操作系统 …… 到第1章“练习和编程1”
    • 说明:删除“使用”二字;将“练习和编程”修改为“练习和编程1”。
  10. 页码:027

  • 行数:倒数第1行
  • 原文:用符号表示就是int。
  • 修订:用符号int表示。
  1. 页码:030

    • 行数:正文,正数第4段第1行
    • 原文:上面这种提问,在数学中或许容易回答,
    • 修订:此问题,在数学中或许容易回答,
    • 说明:将“上面这种提问”修改为“此问题”。
  2. 页码:039

    • 行数:正文,正数第2行
    • 原文:想让计算机能够处理字符,也要如此处理,必须把字符与二进制的为(bit)之间建立起一个对应关系,这种对应关系被称为“字符编码”。
    • 修订:想让计算机能够处理字符,也要如此,必须将字符与二进制的为(bit)之间建立起对应关系,这种对应关系称为“字符编码”。
    • 说明:删除原来的“处理”、“一个”、“被”,并将原句中的“把”修改为“将”。
  3. 页码:041

    • 增加“表象上看”
    • 删除“函数”、“函数”
    • 增加:实质上…实例(对此句…内容)。
  4. 页码:041

    • 行数:正文,正数第1行
    • 原文:尽管是数字,….,变成了字符串。这种由数字组成的字符串可以通过int函数和str函数实现相互间的类型转化。
    • 修订:尽管是数字,….,变成了字符串。表象上看,这种由数字组成的字符串可以通过int和str实现相互间的类型转化,实质上,int('250')是以字符串“250”为参数创建一个整数类型实例(对此句的理解请参阅本书第6章内容)。
    • 说明:
  5. 页码:044

    • 行数:正文,倒数第2行
    • 增加一段:请思考并尝试:len("大学")的返回值是多少?在此基础上进一步体会帮助文档的说明。
    • 说明:在“4. In:判断元素是否存在其中”前面增加上述内容,并单独一个段落。
  6. 页码:052

    • 行数:正文,正数第2行
    • 原文:2. 分隔和组合
    • 修订:2. 分割和组合
    • 说明:将原文中的“隔”修改为“割”。
  7. 页码:067

    • 行数:正文,倒数第4自然段,第1行
    • 原文:在一个字典中,“键”必须满足如下条件:
    • 修订:字典中,“键”必须满足如下条件:
    • 说明:删除“在一个”。
  8. 页码:074

  • 行数:正文,正数第4自然段第2行
  • 原文:它独立称为一个语句,
  • 修订:它独立成为一个语句,
  • 说明:原句中的“称”修改为“成”。
  1. 页码:076
  • 行数:正文第2自然段。
  • 原文:可以理解为深度拷贝就是复制过程的递归。
  • 修订:可以将深度拷贝理解为复制过程的递归,即将容器中的容器也复制。
  • 说明:如修订,修改原文表述顺序,并增加一句。
  1. 页码:076
  • 行数:正文倒数第2自然段
  • 原文:使用对象是可变的容器对象,对数字、字符串等没有“拷贝”操作。
  • 修订:复制的是容器对象(区别在于一层还是多层),对数字、字符串等没有“拷贝”操作。
  • 说明:将原句中的“使用对象是可变的”修改为“复制的是”,并增加“(区别在于一层还是多层)”
  1. 页码:089

    • 增加“在”字
    • 删除“的字词那样”
  2. 页码:089

    • 行数:正文,正数第2自然段
    • 原文:这就好比自然语言中的字词那样,要想然字词能表达某种意思,
    • 修订:这就好比在自然语言中,要想然字词能表达某种意思,
    • 说明:
  3. 页码:090

    • 行数:正文,倒数第1段
    • 原文:并且逐个字符进行比较,如果相等,则返回True。如果每个字符串都比较完毕,不等式仍然不成立,则返回False。
    • 修订:并且逐个字符进行比较,如果比较关系对于每两个对应字符都成立,则返回True,否则返回False。
    • 说明:删除原句中“如果相等…则返回False”,修改为“如果比较关系…返回False”。
  4. 页面:092

    • 行数:正文,倒数第2自然段
    • 原文:它们是Python的内置对象类型。
    • 修订:它们是Python的内置对象。
    • 说明:删除原文中的“类型”。
  5. 页面:093

    • 行数:图4-1-1
    • 说明:将原图4-1-1用下面的图示替换。
  6. 页面:094

    • 行数:图4-1-2
    • 说明:将原图4-1-2用下面的图示替换。
  7. 页面:094

    • 行数:正文,标题“3. not”下第1行
    • 原文:Not为“非”运算,
    • 修订:not为“非”运算,
    • 说明:将原文中首字母大写的“Not”修改为“not”
  8. 页面:095

    • 行数:正文,倒数第5自然段
    • 原文:e,作为数学常数,是自然对数函数的底数,有时称为欧拉数(Euler's number),
    • 修订:e,自然常数,也称为欧拉数(Euler's number),
    • 说明:删除原文“作为数学常数,…,有时”,并替换为“自然常数,也”。
  9. 页面:095

    • 行数:正文,倒数第2自然段
    • 原文:~~这里以math标准库为例,~~演示了import语句的不同使用方式。
    • 修订:以上演示了import语句的不同使用方式。
    • 说明:删除“这里以math标准库为例,”,并在替换“以上”。
  10. 页面:099

    • 行数:正文,倒数第3自然段
    • 原文:①在“for i in hello: ”中, for是发起循环的关键词,“i in hello”是循环规则。
    • 修订:①在“for i in h: ”中, for是发起循环的关键词,“i in h”是循环规则(h = 'hello')。
    • 说明:原文中的hello,改为:h。
  11. 页面:106

  • 行数:正文,倒数第1行
  • 原文:【例题4-4-7】有列表mybag = ['glass', 'apple', 'green leaf'],
  • 修订:【例题4-4-7】有列表mybag = [' glass', ' apple ', 'green leaf '],
  • 说明:列表中,第一个元素的的单词前面有一个空格;第二个元素单词两边都有空格,第三个元素最后一个单词右边有一个空格。
  1. 页面:109
  • 行数:正文,正数第4自然段
  • 原文:“猜中中止”,……,利用break中止循环
  • 修订:“猜中终止”,……,利用break终止循环
  • 说明:将“中止”修改为“终止”。
  1. 页面:110
  • 行数:正文,正数第3行
  • 原文:中止循环(break)
  • 修订:终止循环(break)
  • 说明:将“中止”修改为“终止”。
  1. 页面:114
  • 行数:正文,正数第8行
  • 原文:⑦通常的函数……,返回一个值(即对象)。
  • 修订:⑦通常的函数……,返回一个或多个值(即对象)。
  • 说明:将“返回一个值”修改为“返回一个或多个值”。
  1. 页面:130

    • 它的名称是“装饰器”。
    • “装饰器”的作用在面的……
    • 它的名称是“装饰器语法糖”。
    • “装饰器语法糖”的作用在面的……
    • 行数:正文,倒数第2自然段、倒数第1自然段。
    • 原文:
    • 修订:
    • 说明:删除“语法糖”三个字。
  2. 页面:135

    • 行数:正文,正数第3行
    • 原文:计算列表中整数的平均数和标注差。
    • 修订:计算列表中整数的平均数和标准差。
    • 说明:原文中的“标注差”修改为“标准差”。
  3. 页面:137

  • 行数:正文,倒数第5段,第1行。
  • 原文:在面向对象程式设计中,类(class)是一种面向对象计算机编程语言的构造,
  • 修改:在面向对象程序设计中,类(class)是一种面向对象计算机编程语言的构造,
  • 说明:原文中的“程式”,修改为“程序”。
  1. 页面:141
  • 行数:第一段代码,注释⑦开始,到本段代码结束

  • 修改:将注释⑦以及之后的缩进去掉,变成如下排版样式:

        def nine_negative_kungfu(self):
            return "Ya! You have to die"
    
    zhangsan = SuperMan("zhangsan")                             #⑦
    print("superman's name is:", zhangsan.name)                 #⑧
    print("superman is:(0-female, 1-male)", zhangsan.gender)    #⑨
    result = zhangsan.nine_negative_kungfu()                    #⑩
    print("If superman plays nine negative kungfu, the result is:")
    print(result)
  1. 页面:146
  • 行数:正文,正数第1行
  • 原文:③还是一个赋值语句。所以,这里“修改”变量Foo.lang本质上是引用了另一个对象。
  • 修订:③还是一个赋值语句。所以,“属性值修改”可以理解为变量Foo.lang引用了另一个对象。
  1. 页面:150
  • 行数:正文,正数第5自然段第2行
  • 原文:如②所示。当用此示例调用方法的时候,……,如③和④所示。
  • 修订:如④所示。当用此示例调用方法的时候,……,如③和②所示。
  • 说明:②和④在文中调换位置。
  1. 页面:153
  • 行数:正文,正数第1自然段和第2自然段。
  • 原文:而④用装饰器装饰了……不需要”硬编码“,改为cls.msg的样式。
  • 修订:④用装饰器装饰了……,使用cls.msg的样式。
  • 说明:
    • 删除第1自然段
    • 第2自然段,删除“而”、“不需要”硬编码””,并将“改为”替换为“使用”。
    • 在类Message中定义了类属性msg……于是不得不“并编码
  1. 页面:165
  • 行数:正文,正数第5自然段
  • 原文:大师 Brue Eckel 在上面提到的博客中
  • 修订:大师 Bruce Eckel 在上面提到的博客中
  • 说明:将 Brue修改为Bruce
  1. 页面:183
  • 行数:正文,倒数第2行
  • 原文:6.9.1 基本引用
  • 修订:6.9.1 基本应用
  • 说明:将原文中的“引用”修改为“应用”
  1. 页面:192
  • 行数:正文,倒数第2自然段第2行
  • 原文:Yield即“生产”“出产”之意,
  • 修订:yield即“生产”“出产”之意,
  • 说明:将原来首字母大写改为小写。
  1. 页面:193
  • 行数:正文,倒数第2自然段第1行
  • 原文:最后的结果用以往的函数知识不难理解。
  • 修订:用以往的函数知识不难理解最后的结果。
  1. 页面:194

    • 行数:例题6-11-1
    • 原文:请编写一个迭代器函数
    • 修订:请编写一个生成器函数
    • 说明:将原文中的“迭代器”,修改为“生成器”
  2. 页面:199

    • 行数:正文,正数第5行
    • 原文:换一个方式,能发现一个规律。
    • 修订:换个方式,能发现规律。
  3. 页面:218

    • 行数:正文,倒数第2行
    • 原文:一般情况下,如果本地没有安装,pip会随python默然安装上~~,可以通过下列方式完成安装工作~~。
    • 修订:一般情况下,pip会随Python默认安装上。如果本地没有安装,可以同通过下列方式安装。
  4. 页面:227

    • 行数:表5-2-1的第6行
    • 原文:请求一个不存在的字典关键字
    • 修订:请求一个不存在的字典的键
    • 说明:将原文中的“关键字”修改为“的键”。
  5. 页面:230

    • 行数:正文,正数第3自然段第2行
    • 原文:所谓处理多个异常,是可以允许捕获不同的异常,由不同的except子句处理。
    • 修订:所谓处理多个异常,即捕获不同的异常,并由不同的except子句处理。