Procházet zdrojové kódy

更新了部分文档

jackfrued před 6 roky
rodič
revize
9fdd935b03

+ 10 - 8
Day01-15/01.初识Python.md

@@ -5,7 +5,7 @@
 #### Python的历史
 
 1. 1989年圣诞节:Guido von Rossum开始写Python语言的编译器。
-2. 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了Java和C#实现的版本Jython和IronPython,除此之外还有PyPy、Brython、Pyston等其他实现),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,还有对列表、字典等核心数据类型,同时支持以模块为基础来构造应用程序。
+2. 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,还有对列表、字典等核心数据类型,同时支持以模块为基础来构造应用程序。
 3. 1994年1月:Python 1.0正式发布。
 4. 2000年10月16日:Python 2.0发布,增加了完整的[垃圾回收](https://zh.wikipedia.org/wiki/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6_(%E8%A8%88%E7%AE%97%E6%A9%9F%E7%A7%91%E5%AD%B8)),提供了对[Unicode](https://zh.wikipedia.org/wiki/Unicode)的支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。
 5. 2008年12月3日:Python 3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用Python 2.x版本,所以Python 3.x的很多新特性后来也被移植到Python 2.6/2.7版本中。
@@ -34,7 +34,9 @@ Python的缺点主要集中在以下几点。
 
 目前Python在Web应用开发、云基础设施、DevOps、网络数据采集(爬虫)、数据分析挖掘、机器学习等领域都有着广泛的应用,因此也产生了Web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、自然语言处理、图像识别等一系列相关的职位。
 
-### 搭建编程环境
+### 安装Python解释器
+
+想要开始Python编程之旅,首先得在自己使用的计算机上安装Python解释器环境,下面将以安装官方的Python解释器为例,讲解如何在不同的操作系统上安装Python环境。官方的Python解释器是用C语言实现的,也是使用最为广泛的Python解释器,通常称之为CPython。除此之外,Python解释器还有Java语言实现的Jython、C#语言实现的IronPython以及PyPy、Brython、Pyston等版本,我们暂时不对这些内容进行介绍,有兴趣的读者可以自行了解。
 
 #### Windows环境
 
@@ -93,7 +95,7 @@ source .bash_profile
 
 macOS也自带了Python 2.x版本,可以通过[Python的官方网站](https://www.python.org)提供的安装文件(pkg文件)安装Python 3.x的版本。默认安装完成后,可以通过在终端执行`python`命令来启动2.x版本的Python解释器,启动3.x版本的Python解释器需要执行`python3`命令。
 
-### 从终端运行Python程序
+### 运行Python程序
 
 #### 确认Python的版本
 
@@ -139,7 +141,7 @@ python hello.py
 python3 hello.py
 ```
 
-### 代码中的注释
+#### 代码中的注释
 
 注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性和可维护性,当然也可以将源代码中不需要参与运行的代码段通过注释来去掉,这一点在调试程序的时候经常用到。注释在随源代码进入预处理器或编译时会被移除,不会在目标代码中保留也不会影响程序的执行结果。
 
@@ -162,7 +164,7 @@ print('hello', 'world', sep=', ', end='!')
 print('goodbye, world', end='!\n')
 ```
 
-### 其他工具介绍
+### Python开发工具
 
 #### IDLE - 自带的集成开发工具
 
@@ -230,18 +232,18 @@ PyCharm的安装、配置和使用在[《玩转PyCharm》](../玩转PyCharm.md)
 
 ### 练习
 
-1. 在Python交互环境中查看下面的代码结果,并试着将这些内容翻译成中文。
+1. 在Python交互式环境中输入下面的代码并查看结果,请尝试将看到的内容翻译成中文。
 
     ```Python
     import this
     ```
 
-    > 说明:当前键入上面的命令后会在交互式环境中看到如下所示的输出,这段内容被称为“Python之禅”,里面讲述的道理不仅仅适用于Python,也适用于其他编程语言。
+    > 说明:输入上面的代码,在Python的交互式环境中可以看到Tim Peter撰写的[“Python之禅”](../Python之禅.md),里面讲述的道理不仅仅适用于Python,也适用于其他编程语言。
     >
 
 2. 学习使用turtle在屏幕上绘制图形。
 
-    > 说明:turtle是Python内置的一个非常有趣的模块,特别适用于让小朋友体会什么是编程,它最早是Logo语言的一部分,Logo语言是Wally Feurzig和Seymour Papert在1966发明的编程语言.
+    > 说明:turtle是Python内置的一个非常有趣的模块,特别适合对计算机程序设计进行初体验的小伙伴,它最早是Logo语言的一部分,Logo语言是Wally Feurzig和Seymour Papert在1966发明的编程语言
 
     ```Python
     import turtle

+ 2 - 0
Day01-15/02.语言元素.md

@@ -96,6 +96,8 @@ print(type(d))
 print(type(e))
 ```
 
+> 说明:上面的代码中用到了Python中的内置函数,如果暂时不理解函数这个概念也不要紧,我们会在后续的内容中专门讲解Python中函数的使用。
+
 在对变量类型进行转换时可以使用Python的内置函数。
 
 - `int()`:将一个数值或字符串转换成整数,可以指定进制。

+ 4 - 4
Day01-15/03.分支结构.md

@@ -138,9 +138,9 @@ print(result)
 """
 百分制成绩转等级制成绩
 90分以上    --> A
-80分~89分    --> B
-70分~79分	   --> C
-60分~69分    --> D
+80分~89分   --> B
+70分~79分	  --> C
+60分~69分   --> D
 60分以下    --> E
 
 Version: 0.1
@@ -190,7 +190,7 @@ else:
 
 ```Python
 """
-输入月收入和五险一金计算个人所得税
+输入月收入和五险一金计算个人所得税(2019年以前的算法)
 
 Version: 0.1
 Author: 骆昊

+ 19 - 9
Day36-40/36-38.关系型数据库MySQL.md

@@ -1004,19 +1004,29 @@ drop view vw_student_score;
 下面的存储过程实现了查询某门课程的最高分、最低分和平均分。
 
 ```SQL
+drop procedure if exists sp_score_by_cid;
+
 delimiter $$
 
-create procedure sp_get_score(courseId int, 
-                              out maxScore decimal(4,1), 
-                              out minScore decimal(4,1),
-                              out avgScore decimal(4,1))
+create procedure sp_score_by_cid(
+	courseId int, 
+	out maxScore decimal(4,1), 
+	out minScore decimal(4,1),
+	out avgScore decimal(4,1)
+)
 begin
-	select max(score) into maxScore from tb_record where cid=courseId;
-	select min(score) into minScore from tb_record where cid=courseId;
-	select avg(score) into avgScore from tb_record where cid=courseId;
+	select max(score) into maxScore from tb_record 
+		where cid=courseId;
+	select min(score) into minScore from tb_record 
+		where cid=courseId;
+	select avg(score) into avgScore from tb_record 
+		where cid=courseId;
 end $$
 
 delimiter ;
+
+call sp_score_by_cid(1111, @a, @b, @c);
+select @a, @b, @c;
 ```
 
 > 说明:在定义存储过程时,因为可能需要书写多条SQL,而分隔这些SQL需要使用分号作为分隔符,如果这个时候,仍然用分号表示整段代码结束,那么定义存储过程的SQL就会出现错误,所以上面我们用`delimiter $$`将整段代码结束的标记定义为`$$`,那么代码中的分号将不再表示整段代码的结束,需要马上执行,整段代码在遇到`end $$`时才输入完成并执行。在定义完存储过程后,通过`delimiter ;`将结束符重新改回成分号。
@@ -1026,7 +1036,7 @@ delimiter ;
 调用存储过程。
 
 ```SQL
-call sp_get_score(1111, @a, @b, @c);
+call sp_score_by_cid(1111, @a, @b, @c);
 ```
 
 获取输出参数的值。
@@ -1038,7 +1048,7 @@ select @a as 最高分, @b as 最低分, @c as 平均分;
 删除存储过程。
 
 ```SQL
-drop procedure sp_get_score;
+drop procedure sp_score_by_cid;
 ```
 
 在存储过程中,我们可以定义变量、条件,可以使用分支和循环语句,可以通过游标操作查询结果,还可以使用事件调度器,这些内容我们暂时不在此处进行介绍。虽然我们说了很多存储过程的好处,但是在实际开发中,如果过度的使用存储过程,将大量复杂的运算放到存储过程中,也会导致占用数据库服务器的CPU资源,造成数据库服务器承受巨大的压力。为此,我们一般会将复杂的运算和处理交给应用服务器,因为很容易部署多台应用服务器来分摊这些压力。