Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Python-100-Days
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
huangkq
Python-100-Days
Commits
ed6777ea
Commit
ed6777ea
authored
Jul 24, 2019
by
jackfrued
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新了部分文档
parent
48758e07
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
13 additions
and
9 deletions
+13
-9
08.面向对象编程基础.md
Day01-15/08.面向对象编程基础.md
+1
-1
09.面向对象进阶.md
Day01-15/09.面向对象进阶.md
+1
-1
11.文件和异常.md
Day01-15/11.文件和异常.md
+1
-1
13.进程和线程.md
Day01-15/13.进程和线程.md
+1
-1
14.网络编程入门和网络应用开发.md
Day01-15/14.网络编程入门和网络应用开发.md
+0
-2
36-38.关系型数据库MySQL.md
Day36-40/36-38.关系型数据库MySQL.md
+9
-3
conceptual_model.png
Day36-40/res/conceptual_model.png
+0
-0
er_diagram.png
Day36-40/res/er_diagram.png
+0
-0
No files found.
Day01-15/08.面向对象编程基础.md
View file @
ed6777ea
...
...
@@ -2,7 +2,7 @@
活在当下的程序员应该都听过“面向对象编程”一词,也经常有人问能不能用一句话解释下什么是“面向对象编程”,我们先来看看比较正式的说法。
> 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。
“把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。”
这样一说是不是更不明白了。所以我们还是看看更通俗易懂的说法,下面这段内容来自于
[
知乎
](
https://www.zhihu.com/
)
。
...
...
Day01-15/09.面向对象进阶.md
View file @
ed6777ea
...
...
@@ -276,7 +276,7 @@ def main():
stu = Student('王大锤', 15, '初三')
stu.study('数学')
stu.watch_av()
t = Teacher('骆昊', 38, '
老叫兽
')
t = Teacher('骆昊', 38, '
砖家
')
t.teach('Python程序设计')
t.watch_av()
...
...
Day01-15/11.文件和异常.md
View file @
ed6777ea
## 文件和异常
在实际开发中,常常需要对程序中的数据进行
[
持久化
](
https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E6%8C%81%E4%B9%85%E5%8C%96
)
操作,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于
[
文件系统
](
https://zh.wikipedia.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F
)
的知识,对于这个概念,维基百科上给出了很好的诠释,这里不再浪费笔墨
。
实际开发中常常会遇到对数据进行
[
持久化
](
https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E6%8C%81%E4%B9%85%E5%8C%96
)
操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于
[
文件系统
](
https://zh.wikipedia.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F
)
的知识,但是这里我们并不浪费笔墨介绍这个概念,请大家自行通过维基百科进行了解
。
在Python中实现文件的读写操作其实非常简单,通过Python内置的
`open`
函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可以对文件进行读写操作了。这里所说的操作模式是指要打开什么样的文件(字符文件还是二进制文件)以及做什么样的操作(读、写还是追加),具体的如下表所示。
...
...
Day01-15/13.进程和线程.md
View file @
ed6777ea
...
...
@@ -485,5 +485,5 @@ if __name__ == '__main__':
main()
```
比较两段代码的执行结果(在我目前使用的MacBook上,上面的代码需要大概6秒左右的时间,而下面的代码只需要不到1秒的时间,再强调一次我们只是比较了运算的时间,不考虑列表创建及切片操作花费的时间),使用多进程后由于获得了更多的CPU执行时间以及更好的利用了CPU的多核特性,明显的减少了程序的执行时间,而且计算量越大效果越明显。当然,如果愿意还可以将多个进程部署在不同的计算机上,做成分布式进程,具体的做法就是通过
multiprocessing.managers
模块中提供的管理器将
`Queue`
对象通过网络共享出来(注册到网络上让其他计算机可以访问),这部分内容也留到爬虫的专题再进行讲解。
比较两段代码的执行结果(在我目前使用的MacBook上,上面的代码需要大概6秒左右的时间,而下面的代码只需要不到1秒的时间,再强调一次我们只是比较了运算的时间,不考虑列表创建及切片操作花费的时间),使用多进程后由于获得了更多的CPU执行时间以及更好的利用了CPU的多核特性,明显的减少了程序的执行时间,而且计算量越大效果越明显。当然,如果愿意还可以将多个进程部署在不同的计算机上,做成分布式进程,具体的做法就是通过
`multiprocessing.managers`
模块中提供的管理器将
`Queue`
对象通过网络共享出来(注册到网络上让其他计算机可以访问),这部分内容也留到爬虫的专题再进行讲解。
Day01-15/14.网络编程入门和网络应用开发.md
View file @
ed6777ea
...
...
@@ -38,8 +38,6 @@ TCP全称传输控制协议,它是基于IP提供的寻址和路由服务而建
2.
流量控制(通过滑动窗口匹配数据发送者和接收者之间的传输速度)。
3.
拥塞控制(通过RTT时间以及对滑动窗口的控制缓解网络拥堵)。
#### 网络应用模式
1.
C/S模式和B/S模式。这里的C指的是Client(客户端),通常是一个需要安装到某个宿主操作系统上的应用程序;而B指的是Browser(浏览器),它几乎是所有图形化操作系统都默认安装了的一个应用软件;通过C或B都可以实现对S(服务器)的访问。关于二者的比较和讨论在网络上有一大堆的文章,在此我们就不再浪费笔墨了。
...
...
Day36-40/36-38.关系型数据库MySQL.md
View file @
ed6777ea
...
...
@@ -16,14 +16,20 @@
-
编程语言:结构化查询语言(SQL)。
4.
E
-R图 /
概念模型图。
4.
E
R模型(实体关系模型)和
概念模型图。
!
[](
./res/concept-model-graph.png
)
**ER模型**
,全称为
**实体关系模型**
(Entity-Relationship Model),由美籍华裔计算机科学家陈品山先生提出,是概念数据模型的高层描述方式,如下图所示。
!
[](
./res/er_diagram.png
)
-
实体 - 矩形框
-
属性 - 椭圆框
-
关系 - 菱形框
-
重数 - 1:1 / 1:N / M:N
-
重数 - 1:1(一对一) / 1:N(一对多) / M:N(多对多)
实际项目开发中,通常绘图的方式来辅助设计。在设计数据库时,我们可以利用数据库建模工具(如:PowerDesigner)绘制概念数据模型(其本质就是ER模型),然后再设置好目标数据库系统,将概念模型转换成物理模型,最终生成创建数据表的SQL。
!
[](
./res/conceptual_model.png
)
5.
关系数据库产品。
-
[
Oracle
](
https://www.oracle.com/index.html
)
- 目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库,它实现了分布式处理的功能。在Oracle最新的12c版本中,还引入了多承租方架构,使用该架构可轻松部署和管理数据库云。
...
...
Day36-40/res/concept
-model-graph
.png
→
Day36-40/res/concept
ual_model
.png
View file @
ed6777ea
File moved
Day36-40/res/er_diagram.png
0 → 100644
View file @
ed6777ea
987 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment