File tree 9 files changed +10
-10
lines changed
9 files changed +10
-10
lines changed Original file line number Diff line number Diff line change 10
10
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的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。
11
11
5 . 2008年12月3日:Python 3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用Python 2.x版本,所以Python 3.x的很多新特性后来也被移植到Python 2.6/2.7版本中。
12
12
13
- 目前我们使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以阅读名为[ 《Python简史》] ( http://www.cnblogs.com/vamei/archive/2013/02/06/2892628.html ) 的网络文章。
13
+ 目前我使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以阅读名为[ 《Python简史》] ( http://www.cnblogs.com/vamei/archive/2013/02/06/2892628.html ) 的网络文章。
14
14
15
15
#### Python的优缺点
16
16
@@ -218,7 +218,7 @@ pip3 install ipython
218
218
219
219
#### PyCharm - Python开发神器
220
220
221
- PyCharm的安装、配置和使用在[ 《玩转PyCharm》] ( ../玩转PyCharm.md ) 进行了介绍,有兴趣的读者可以选择阅读。
221
+ PyCharm的安装、配置和使用在[ 《玩转PyCharm》] ( ../番外篇/ 玩转PyCharm.md ) 进行了介绍,有兴趣的读者可以选择阅读。
222
222
223
223
![ ] ( ./res/python-pycharm.png )
224
224
Original file line number Diff line number Diff line change @@ -193,7 +193,7 @@ c = (f - 32) / 1.8
193
193
print (' %.1f 华氏度 = %.1f 摄氏度' % (f, c))
194
194
```
195
195
196
- > ** 说明** :在使用` print ` 函数输出时,也可以对字符串内容进行格式化处理,上面` print ` 函数中的字符串` %1.f ` 是一个占位符,稍后会由一个` float ` 类型的变量值替换掉它。同理,如果字符串中有` %d ` ,后面可以用一个` int ` 类型的变量值替换掉它,而` %s ` 会被字符串的值替换掉。除了这种格式化字符串的方式外,还可以用下面的方式来格式化字符串,其中` {f:.1f} ` 和` {c:.1f} ` 可以先看成是` {f} ` 和` {c} ` ,表示输出时会用变量` f ` 和变量` c ` 的值替换掉这两个占位符,后面的` :.1f ` 表示这是一个浮点数,小数点后保留1位有效数字。
196
+ > ** 说明** :在使用` print ` 函数输出时,也可以对字符串内容进行格式化处理,上面` print ` 函数中的字符串` %.1f ` 是一个占位符,稍后会由一个` float ` 类型的变量值替换掉它。同理,如果字符串中有` %d ` ,后面可以用一个` int ` 类型的变量值替换掉它,而` %s ` 会被字符串的值替换掉。除了这种格式化字符串的方式外,还可以用下面的方式来格式化字符串,其中` {f:.1f} ` 和` {c:.1f} ` 可以先看成是` {f} ` 和` {c} ` ,表示输出时会用变量` f ` 和变量` c ` 的值替换掉这两个占位符,后面的` :.1f ` 表示这是一个浮点数,小数点后保留1位有效数字。
197
197
>
198
198
> ``` Python
199
199
> print (f ' { f:.1f } 华氏度 = { c:.1f } 摄氏度 ' )
Original file line number Diff line number Diff line change @@ -168,7 +168,7 @@ y = int(input('y = '))
168
168
if x > y:
169
169
# 通过下面的操作将y的值赋给x, 将x的值赋给y
170
170
x, y = y, x
171
- # 从两个数中较的数开始做递减的循环
171
+ # 从两个数中较小的数开始做递减的循环
172
172
for factor in range (x, 0 , - 1 ):
173
173
if x % factor == 0 and y % factor == 0 :
174
174
print (' %d 和%d 的最大公约数是%d ' % (x, y, factor))
Original file line number Diff line number Diff line change @@ -200,7 +200,7 @@ from module1 import foo
200
200
foo()
201
201
```
202
202
203
- 需要说明的是,如果我们导入的模块除了定义函数之外还中有可以执行代码 ,那么Python解释器在导入这个模块时就会执行这些代码,事实上我们可能并不希望如此,因此如果我们在模块中编写了执行代码,最好是将这些执行代码放入如下所示的条件中,这样的话除非直接运行该模块,if条件下的这些代码是不会执行的,因为只有直接执行的模块的名字才是" ; \_\_ main\_\_ " ; 。
203
+ 需要说明的是,如果我们导入的模块除了定义函数之外还有可以执行代码 ,那么Python解释器在导入这个模块时就会执行这些代码,事实上我们可能并不希望如此,因此如果我们在模块中编写了执行代码,最好是将这些执行代码放入如下所示的条件中,这样的话除非直接运行该模块,if条件下的这些代码是不会执行的,因为只有直接执行的模块的名字才是" ; \_\_ main\_\_ " ; 。
204
204
205
205
` module3.py `
206
206
Original file line number Diff line number Diff line change 2
2
3
3
### 使用字符串
4
4
5
- 第二次世界大战促使了现代电子计算机的诞生,最初计算机被应用于导弹弹道的计算,而在计算机诞生后的很多年时间里,计算机处理的信息基本上都是数值型的信息。世界上的第一台电子计算机叫ENIAC(电子数值积分计算机),诞生于美国的宾夕法尼亚大学,每秒钟能够完成约5000次浮点运算。随着时间的推移,虽然数值运算仍然是计算机日常工作中最为重要的事情之一,但是今天的计算机处理得更多的数据可能都是以文本的方式存在的,如果我们希望通过Python程序操作本这些文本信息 ,就必须要先了解字符串类型以及与它相关的知识。
5
+ 第二次世界大战促使了现代电子计算机的诞生,最初计算机被应用于导弹弹道的计算,而在计算机诞生后的很多年时间里,计算机处理的信息基本上都是数值型的信息。世界上的第一台电子计算机叫ENIAC(电子数值积分计算机),诞生于美国的宾夕法尼亚大学,每秒钟能够完成约5000次浮点运算。随着时间的推移,虽然数值运算仍然是计算机日常工作中最为重要的事情之一,但是今天的计算机处理得更多的数据可能都是以文本的方式存在的,如果我们希望通过Python程序操作这些文本信息 ,就必须要先了解字符串类型以及与它相关的知识。
6
6
7
7
所谓** 字符串** ,就是由零个或多个字符组成的有限序列,一般记为![ $$ {\displaystyle s=a_{1}a_{2}\dots a_{n}(0\leq n \leq \infty)} $$ ] ( ./res/formula_5.png ) 。在Python程序中,如果我们把单个或多个字符用单引号或者双引号包围起来,就可以表示一个字符串。
8
8
Original file line number Diff line number Diff line change 9
9
"""
10
10
import math
11
11
12
- for num in range (1 , 10000 ):
12
+ for num in range (2 , 10000 ):
13
13
result = 0
14
14
for factor in range (1 , int (math .sqrt (num )) + 1 ):
15
15
if num % factor == 0 :
Original file line number Diff line number Diff line change 85
85
常用的工具类:
86
86
87
87
- ` namedtuple ` :命令元组,它是一个类工厂,接受类型的名称和属性列表来创建一个类。
88
- - ` deque ` :双端队列,是列表的替代实现。Python中的列表底层是基于数组来实现的,而deque底层是双向链表,因此当你需要在头尾添加和删除元素是 ,deque会表现出更好的性能,渐近时间复杂度为$O(1)$。
88
+ - ` deque ` :双端队列,是列表的替代实现。Python中的列表底层是基于数组来实现的,而deque底层是双向链表,因此当你需要在头尾添加和删除元素时 ,deque会表现出更好的性能,渐近时间复杂度为$O(1)$。
89
89
- ` Counter ` :` dict ` 的子类,键是元素,值是元素的计数,它的` most_common() ` 方法可以帮助我们获取出现频率最高的元素。` Counter ` 和` dict ` 的继承关系我认为是值得商榷的,按照CARP原则,` Counter ` 跟` dict ` 的关系应该设计为关联关系更为合理。
90
90
- ` OrderedDict ` :` dict ` 的子类,它记录了键值对插入的顺序,看起来既有字典的行为,也有链表的行为。
91
91
- ` defaultdict ` :类似于字典类型,但是可以通过默认的工厂函数来获得键对应的默认值,相比字典中的` setdefault() ` 方法,这种做法更加高效。
Original file line number Diff line number Diff line change @@ -748,7 +748,7 @@ Linux系统的命令通常都是如下所示的格式:
748
748
749
749
4 . 查看和修改密码有效期 - ** chage** 。
750
750
751
- 设置hellokitty用户100天后必须修改密码,过期前15天通知该用户,过期后15天禁用该用户 。
751
+ 设置hellokitty用户100天后必须修改密码,过期前15天通知该用户,过期后7天禁用该用户 。
752
752
753
753
``` Shell
754
754
chage -M 100 -W 15 -I 7 hellokitty
Original file line number Diff line number Diff line change 31
31
python manage.py migrate polls
32
32
```
33
33
34
- 3 . 用下面的SQL 语句直接插入两条测试数据,通常不能讲用户的密码直接保存在数据库中 ,因此我们将用户密码处理成对应的MD5 摘要。MD5 消息摘要算法是一种被广泛使用的密码哈希函数(散列函数),可以产生出一个128 位(比特)的哈希值(散列值),用于确保信息传输完整一致。在使用哈希值时,通常会将哈希值表示为16 进制字符串,因此128 位的MD5 摘要通常表示为32 个十六进制符号。
34
+ 3 . 用下面的SQL 语句直接插入两条测试数据,通常不能将用户的密码直接保存在数据库中 ,因此我们将用户密码处理成对应的MD5 摘要。MD5 消息摘要算法是一种被广泛使用的密码哈希函数(散列函数),可以产生出一个128 位(比特)的哈希值(散列值),用于确保信息传输完整一致。在使用哈希值时,通常会将哈希值表示为16 进制字符串,因此128 位的MD5 摘要通常表示为32 个十六进制符号。
35
35
36
36
```SQL
37
37
insert into `tb_user`
You can’t perform that action at this time.
0 commit comments