From 9ab84aab1e2c16706a5038edb40520eb0ee59128 Mon Sep 17 00:00:00 2001 From: jackfrued Date: Sat, 20 Nov 2021 20:22:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E4=BA=86=E7=BD=91=E5=8F=8B?= =?UTF-8?q?=E4=BB=AC=E6=8C=87=E5=87=BA=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Day01-15/01.\345\210\235\350\257\206Python.md" | 4 ++-- .../02.\350\257\255\350\250\200\345\205\203\347\264\240.md" | 2 +- .../04.\345\276\252\347\216\257\347\273\223\346\236\204.md" | 2 +- ...50\241\345\235\227\347\232\204\344\275\277\347\224\250.md" | 2 +- ...24\250\346\225\260\346\215\256\347\273\223\346\236\204.md" | 2 +- Day01-15/code/Day05/perfect.py | 2 +- ...Python\350\257\255\350\250\200\350\277\233\351\230\266.md" | 2 +- ...4Linux\346\223\215\344\275\234\347\263\273\347\273\237.md" | 2 +- "Day41-55/44.Cookie\345\222\214Session.md" | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git "a/Day01-15/01.\345\210\235\350\257\206Python.md" "b/Day01-15/01.\345\210\235\350\257\206Python.md" index 50f7e3c..e186895 100644 --- "a/Day01-15/01.\345\210\235\350\257\206Python.md" +++ "b/Day01-15/01.\345\210\235\350\257\206Python.md" @@ -10,7 +10,7 @@ 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版本中。 -目前我们使用的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)的网络文章。 +目前我使用的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)的网络文章。 #### Python的优缺点 @@ -218,7 +218,7 @@ pip3 install ipython #### PyCharm - Python开发神器 -PyCharm的安装、配置和使用在[《玩转PyCharm》](../玩转PyCharm.md)进行了介绍,有兴趣的读者可以选择阅读。 +PyCharm的安装、配置和使用在[《玩转PyCharm》](../番外篇/玩转PyCharm.md)进行了介绍,有兴趣的读者可以选择阅读。 ![](./res/python-pycharm.png) diff --git "a/Day01-15/02.\350\257\255\350\250\200\345\205\203\347\264\240.md" "b/Day01-15/02.\350\257\255\350\250\200\345\205\203\347\264\240.md" index bdb7f13..f78e199 100644 --- "a/Day01-15/02.\350\257\255\350\250\200\345\205\203\347\264\240.md" +++ "b/Day01-15/02.\350\257\255\350\250\200\345\205\203\347\264\240.md" @@ -193,7 +193,7 @@ c = (f - 32) / 1.8 print('%.1f华氏度 = %.1f摄氏度' % (f, c)) ``` -> **说明**:在使用`print`函数输出时,也可以对字符串内容进行格式化处理,上面`print`函数中的字符串`%1.f`是一个占位符,稍后会由一个`float`类型的变量值替换掉它。同理,如果字符串中有`%d`,后面可以用一个`int`类型的变量值替换掉它,而`%s`会被字符串的值替换掉。除了这种格式化字符串的方式外,还可以用下面的方式来格式化字符串,其中`{f:.1f}`和`{c:.1f}`可以先看成是`{f}`和`{c}`,表示输出时会用变量`f`和变量`c`的值替换掉这两个占位符,后面的`:.1f`表示这是一个浮点数,小数点后保留1位有效数字。 +> **说明**:在使用`print`函数输出时,也可以对字符串内容进行格式化处理,上面`print`函数中的字符串`%.1f`是一个占位符,稍后会由一个`float`类型的变量值替换掉它。同理,如果字符串中有`%d`,后面可以用一个`int`类型的变量值替换掉它,而`%s`会被字符串的值替换掉。除了这种格式化字符串的方式外,还可以用下面的方式来格式化字符串,其中`{f:.1f}`和`{c:.1f}`可以先看成是`{f}`和`{c}`,表示输出时会用变量`f`和变量`c`的值替换掉这两个占位符,后面的`:.1f`表示这是一个浮点数,小数点后保留1位有效数字。 > > ```Python > print(f'{f:.1f}华氏度 = {c:.1f}摄氏度') diff --git "a/Day01-15/04.\345\276\252\347\216\257\347\273\223\346\236\204.md" "b/Day01-15/04.\345\276\252\347\216\257\347\273\223\346\236\204.md" index 7bc33f9..e13409c 100644 --- "a/Day01-15/04.\345\276\252\347\216\257\347\273\223\346\236\204.md" +++ "b/Day01-15/04.\345\276\252\347\216\257\347\273\223\346\236\204.md" @@ -168,7 +168,7 @@ y = int(input('y = ')) if x > y: # 通过下面的操作将y的值赋给x, 将x的值赋给y x, y = y, x -# 从两个数中较的数开始做递减的循环 +# 从两个数中较小的数开始做递减的循环 for factor in range(x, 0, -1): if x % factor == 0 and y % factor == 0: print('%d和%d的最大公约数是%d' % (x, y, factor)) diff --git "a/Day01-15/06.\345\207\275\346\225\260\345\222\214\346\250\241\345\235\227\347\232\204\344\275\277\347\224\250.md" "b/Day01-15/06.\345\207\275\346\225\260\345\222\214\346\250\241\345\235\227\347\232\204\344\275\277\347\224\250.md" index 11d5099..a033cfe 100644 --- "a/Day01-15/06.\345\207\275\346\225\260\345\222\214\346\250\241\345\235\227\347\232\204\344\275\277\347\224\250.md" +++ "b/Day01-15/06.\345\207\275\346\225\260\345\222\214\346\250\241\345\235\227\347\232\204\344\275\277\347\224\250.md" @@ -200,7 +200,7 @@ from module1 import foo foo() ``` -需要说明的是,如果我们导入的模块除了定义函数之外还中有可以执行代码,那么Python解释器在导入这个模块时就会执行这些代码,事实上我们可能并不希望如此,因此如果我们在模块中编写了执行代码,最好是将这些执行代码放入如下所示的条件中,这样的话除非直接运行该模块,if条件下的这些代码是不会执行的,因为只有直接执行的模块的名字才是"\_\_main\_\_"。 +需要说明的是,如果我们导入的模块除了定义函数之外还有可以执行代码,那么Python解释器在导入这个模块时就会执行这些代码,事实上我们可能并不希望如此,因此如果我们在模块中编写了执行代码,最好是将这些执行代码放入如下所示的条件中,这样的话除非直接运行该模块,if条件下的这些代码是不会执行的,因为只有直接执行的模块的名字才是"\_\_main\_\_"。 `module3.py` diff --git "a/Day01-15/07.\345\255\227\347\254\246\344\270\262\345\222\214\345\270\270\347\224\250\346\225\260\346\215\256\347\273\223\346\236\204.md" "b/Day01-15/07.\345\255\227\347\254\246\344\270\262\345\222\214\345\270\270\347\224\250\346\225\260\346\215\256\347\273\223\346\236\204.md" index 57127b3..f0e2575 100644 --- "a/Day01-15/07.\345\255\227\347\254\246\344\270\262\345\222\214\345\270\270\347\224\250\346\225\260\346\215\256\347\273\223\346\236\204.md" +++ "b/Day01-15/07.\345\255\227\347\254\246\344\270\262\345\222\214\345\270\270\347\224\250\346\225\260\346\215\256\347\273\223\346\236\204.md" @@ -2,7 +2,7 @@ ### 使用字符串 -第二次世界大战促使了现代电子计算机的诞生,最初计算机被应用于导弹弹道的计算,而在计算机诞生后的很多年时间里,计算机处理的信息基本上都是数值型的信息。世界上的第一台电子计算机叫ENIAC(电子数值积分计算机),诞生于美国的宾夕法尼亚大学,每秒钟能够完成约5000次浮点运算。随着时间的推移,虽然数值运算仍然是计算机日常工作中最为重要的事情之一,但是今天的计算机处理得更多的数据可能都是以文本的方式存在的,如果我们希望通过Python程序操作本这些文本信息,就必须要先了解字符串类型以及与它相关的知识。 +第二次世界大战促使了现代电子计算机的诞生,最初计算机被应用于导弹弹道的计算,而在计算机诞生后的很多年时间里,计算机处理的信息基本上都是数值型的信息。世界上的第一台电子计算机叫ENIAC(电子数值积分计算机),诞生于美国的宾夕法尼亚大学,每秒钟能够完成约5000次浮点运算。随着时间的推移,虽然数值运算仍然是计算机日常工作中最为重要的事情之一,但是今天的计算机处理得更多的数据可能都是以文本的方式存在的,如果我们希望通过Python程序操作这些文本信息,就必须要先了解字符串类型以及与它相关的知识。 所谓**字符串**,就是由零个或多个字符组成的有限序列,一般记为![$${\displaystyle s=a_{1}a_{2}\dots a_{n}(0\leq n \leq \infty)}$$](./res/formula_5.png)。在Python程序中,如果我们把单个或多个字符用单引号或者双引号包围起来,就可以表示一个字符串。 diff --git a/Day01-15/code/Day05/perfect.py b/Day01-15/code/Day05/perfect.py index 5dce5b2..ab18c5b 100644 --- a/Day01-15/code/Day05/perfect.py +++ b/Day01-15/code/Day05/perfect.py @@ -9,7 +9,7 @@ Date: 2018-03-02 """ import math -for num in range(1, 10000): +for num in range(2, 10000): result = 0 for factor in range(1, int(math.sqrt(num)) + 1): if num % factor == 0: diff --git "a/Day16-20/16-20.Python\350\257\255\350\250\200\350\277\233\351\230\266.md" "b/Day16-20/16-20.Python\350\257\255\350\250\200\350\277\233\351\230\266.md" index 2df3e47..f389505 100644 --- "a/Day16-20/16-20.Python\350\257\255\350\250\200\350\277\233\351\230\266.md" +++ "b/Day16-20/16-20.Python\350\257\255\350\250\200\350\277\233\351\230\266.md" @@ -85,7 +85,7 @@ 常用的工具类: - `namedtuple`:命令元组,它是一个类工厂,接受类型的名称和属性列表来创建一个类。 - - `deque`:双端队列,是列表的替代实现。Python中的列表底层是基于数组来实现的,而deque底层是双向链表,因此当你需要在头尾添加和删除元素是,deque会表现出更好的性能,渐近时间复杂度为$O(1)$。 + - `deque`:双端队列,是列表的替代实现。Python中的列表底层是基于数组来实现的,而deque底层是双向链表,因此当你需要在头尾添加和删除元素时,deque会表现出更好的性能,渐近时间复杂度为$O(1)$。 - `Counter`:`dict`的子类,键是元素,值是元素的计数,它的`most_common()`方法可以帮助我们获取出现频率最高的元素。`Counter`和`dict`的继承关系我认为是值得商榷的,按照CARP原则,`Counter`跟`dict`的关系应该设计为关联关系更为合理。 - `OrderedDict`:`dict`的子类,它记录了键值对插入的顺序,看起来既有字典的行为,也有链表的行为。 - `defaultdict`:类似于字典类型,但是可以通过默认的工厂函数来获得键对应的默认值,相比字典中的`setdefault()`方法,这种做法更加高效。 diff --git "a/Day31-35/31-35.\347\216\251\350\275\254Linux\346\223\215\344\275\234\347\263\273\347\273\237.md" "b/Day31-35/31-35.\347\216\251\350\275\254Linux\346\223\215\344\275\234\347\263\273\347\273\237.md" index 33bce52..c61e441 100644 --- "a/Day31-35/31-35.\347\216\251\350\275\254Linux\346\223\215\344\275\234\347\263\273\347\273\237.md" +++ "b/Day31-35/31-35.\347\216\251\350\275\254Linux\346\223\215\344\275\234\347\263\273\347\273\237.md" @@ -748,7 +748,7 @@ Linux系统的命令通常都是如下所示的格式: 4. 查看和修改密码有效期 - **chage**。 - 设置hellokitty用户100天后必须修改密码,过期前15天通知该用户,过期后15天禁用该用户。 + 设置hellokitty用户100天后必须修改密码,过期前15天通知该用户,过期后7天禁用该用户。 ```Shell chage -M 100 -W 15 -I 7 hellokitty diff --git "a/Day41-55/44.Cookie\345\222\214Session.md" "b/Day41-55/44.Cookie\345\222\214Session.md" index 809fcd4..7c5973a 100644 --- "a/Day41-55/44.Cookie\345\222\214Session.md" +++ "b/Day41-55/44.Cookie\345\222\214Session.md" @@ -31,7 +31,7 @@ python manage.py migrate polls ``` -3. 用下面的SQL语句直接插入两条测试数据,通常不能讲用户的密码直接保存在数据库中,因此我们将用户密码处理成对应的MD5摘要。MD5消息摘要算法是一种被广泛使用的密码哈希函数(散列函数),可以产生出一个128位(比特)的哈希值(散列值),用于确保信息传输完整一致。在使用哈希值时,通常会将哈希值表示为16进制字符串,因此128位的MD5摘要通常表示为32个十六进制符号。 +3. 用下面的SQL语句直接插入两条测试数据,通常不能将用户的密码直接保存在数据库中,因此我们将用户密码处理成对应的MD5摘要。MD5消息摘要算法是一种被广泛使用的密码哈希函数(散列函数),可以产生出一个128位(比特)的哈希值(散列值),用于确保信息传输完整一致。在使用哈希值时,通常会将哈希值表示为16进制字符串,因此128位的MD5摘要通常表示为32个十六进制符号。 ```SQL insert into `tb_user` -- GitLab