更新了部分文档
parent
916b47f9ce
commit
9fdd935b03
|
@ -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
|
||||
|
|
|
@ -96,6 +96,8 @@ print(type(d))
|
|||
print(type(e))
|
||||
```
|
||||
|
||||
> 说明:上面的代码中用到了Python中的内置函数,如果暂时不理解函数这个概念也不要紧,我们会在后续的内容中专门讲解Python中函数的使用。
|
||||
|
||||
在对变量类型进行转换时可以使用Python的内置函数。
|
||||
|
||||
- `int()`:将一个数值或字符串转换成整数,可以指定进制。
|
||||
|
|
|
@ -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: 骆昊
|
||||
|
|
|
@ -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资源,造成数据库服务器承受巨大的压力。为此,我们一般会将复杂的运算和处理交给应用服务器,因为很容易部署多台应用服务器来分摊这些压力。
|
||||
|
|
Loading…
Reference in New Issue