 杜逸先 Python3 的新特性和改进Python3的新特性和改进 杭州美登科技 杜逸先 目录 CONTENTS Python的现状 Python3的新特性和改进 迁移到Python3 问答环节 1 Python的现状 Python的现状 Python2.7将于2020年1月1日停止维护 Python的现状 Python2.7将于2020年1月1日停止维护 主流Python包陆续终止对Python2的支持 Python的现状 Python3的新特性和改进 ——重要变化 Python3的新特性和改进——重要变化 Text Vs. Data Instead Of Unicode Vs. 8-bit 内容 类型 混合使用 Python3 Text Vs. Data str Vs. bytes ✖ Python2 Unicode Vs. 8-bit unicode Vs. str ✔ Python3的新特性和改进——重要变化 Python2 Python3的新特性和改进——重要变化 Python3 Python3的新特性和改进——重要变化 Python3的str和bytes不能混用! Python3的新特性和改进——重要变化 求一段文本的MD5:Python2 Python3的新特性和改进——重要变化 求一段文本的MD5:Python3 Python3的新特性和改进——重要变化 Views And Iterators0 码力 | 78 页 | 2.28 MB | 1 年前3 杜逸先 Python3 的新特性和改进Python3的新特性和改进 杭州美登科技 杜逸先 目录 CONTENTS Python的现状 Python3的新特性和改进 迁移到Python3 问答环节 1 Python的现状 Python的现状 Python2.7将于2020年1月1日停止维护 Python的现状 Python2.7将于2020年1月1日停止维护 主流Python包陆续终止对Python2的支持 Python的现状 Python3的新特性和改进 ——重要变化 Python3的新特性和改进——重要变化 Text Vs. Data Instead Of Unicode Vs. 8-bit 内容 类型 混合使用 Python3 Text Vs. Data str Vs. bytes ✖ Python2 Unicode Vs. 8-bit unicode Vs. str ✔ Python3的新特性和改进——重要变化 Python2 Python3的新特性和改进——重要变化 Python3 Python3的新特性和改进——重要变化 Python3的str和bytes不能混用! Python3的新特性和改进——重要变化 求一段文本的MD5:Python2 Python3的新特性和改进——重要变化 求一段文本的MD5:Python3 Python3的新特性和改进——重要变化 Views And Iterators0 码力 | 78 页 | 2.28 MB | 1 年前3
 1_丁来强_开源AIOps数据中台搭建与Python的作用• 缺少持续改进(运维⼈人员⼤大部分时间忙于救⽕火) • ⼈人员学习速度跟不不上业务增⻓长和问题出现的速度 基本概念 • AIOps = Artificial Intelligence for IT Operations • 组合⼤大数据 + 机器器学习 + 分析来帮助IT运维: • 发现、预测、修复问题 ⼤大数据 机器器学习 分析 Garner:AIOps对IT运维的改进 ⼤大数据促进平台融合 结合团队、技术需求、⽅方案选择做细致评估。 • 商业软件或SaaS⽅方案(简化Ops平台⾃自身运维成本)也可作为选 项。 推⾏行行策略略 • 不不要⼀一步到位 • 从历史数据开始 • 持续改进 • 选择合适平台 • 可以摄取各种数据尤其⽂文本、log、与指标数据 • 提供历史与当前视⻆角 • 选择合适⼯工具 • ⽀支持模式识别、异常检测、预测、根因分析扩展的⽅方案0 码力 | 48 页 | 17.54 MB | 1 年前3 1_丁来强_开源AIOps数据中台搭建与Python的作用• 缺少持续改进(运维⼈人员⼤大部分时间忙于救⽕火) • ⼈人员学习速度跟不不上业务增⻓长和问题出现的速度 基本概念 • AIOps = Artificial Intelligence for IT Operations • 组合⼤大数据 + 机器器学习 + 分析来帮助IT运维: • 发现、预测、修复问题 ⼤大数据 机器器学习 分析 Garner:AIOps对IT运维的改进 ⼤大数据促进平台融合 结合团队、技术需求、⽅方案选择做细致评估。 • 商业软件或SaaS⽅方案(简化Ops平台⾃自身运维成本)也可作为选 项。 推⾏行行策略略 • 不不要⼀一步到位 • 从历史数据开始 • 持续改进 • 选择合适平台 • 可以摄取各种数据尤其⽂文本、log、与指标数据 • 提供历史与当前视⻆角 • 选择合适⼯工具 • ⽀支持模式识别、异常检测、预测、根因分析扩展的⽅方案0 码力 | 48 页 | 17.54 MB | 1 年前3
 Django 官方教程翻译项目通过在数据库中创建一个特殊的表 django_migrations 来跟踪执行过哪些迁移)并应用在数据库上 - 也就是将你对模型的更改同步 到数据库结构上。 迁移是非常强大的功能,它能让你在开发过程中持续的改变数据库结构而不需要重新删除和创建表 - 它专注于使数据库平滑升级而不会丢失数据。我们会在后面的教程中更加深入的学习这部分内容,现 在,你只需要记住,改变模型需要这三步: 编辑 models get_queryset(self): 8. """返回最近发布的五个投票""" 9. return Question.objects.order_by('-pub_date')[:5] 我们需要改进 get_queryset() 方法,让他它能通过将 Question 的 pub_data 属性与 timezone.now() 相比较来判断是否应该显示此 Question。首先我们需要一行 import question_text) 我们应该给 ResultsView 也增加一个类似的 get_queryset 方法,并且为它创建测试。这和我 们之前干的差不多,事实上,基本就是重复一遍。 我们还可以从各个方面改进应用,但是测试会一直伴随我们。比方说,在目录页上显示一个没有选项 (Choices)的问题就没什么意义。我们可以检查并排除这样的 问题(Questions)。测试里则可 以创建一个没有选项的问题0 码力 | 103 页 | 1.86 MB | 1 年前3 Django 官方教程翻译项目通过在数据库中创建一个特殊的表 django_migrations 来跟踪执行过哪些迁移)并应用在数据库上 - 也就是将你对模型的更改同步 到数据库结构上。 迁移是非常强大的功能,它能让你在开发过程中持续的改变数据库结构而不需要重新删除和创建表 - 它专注于使数据库平滑升级而不会丢失数据。我们会在后面的教程中更加深入的学习这部分内容,现 在,你只需要记住,改变模型需要这三步: 编辑 models get_queryset(self): 8. """返回最近发布的五个投票""" 9. return Question.objects.order_by('-pub_date')[:5] 我们需要改进 get_queryset() 方法,让他它能通过将 Question 的 pub_data 属性与 timezone.now() 相比较来判断是否应该显示此 Question。首先我们需要一行 import question_text) 我们应该给 ResultsView 也增加一个类似的 get_queryset 方法,并且为它创建测试。这和我 们之前干的差不多,事实上,基本就是重复一遍。 我们还可以从各个方面改进应用,但是测试会一直伴随我们。比方说,在目录页上显示一个没有选项 (Choices)的问题就没什么意义。我们可以检查并排除这样的 问题(Questions)。测试里则可 以创建一个没有选项的问题0 码力 | 103 页 | 1.86 MB | 1 年前3
 Python 3.11.10 正则表达式 HOWTO 此时,匹配引擎已经到达了正则表达式的尽头,并且成功匹配到了 'abcb' 。这个例子表明了匹配引擎一开 始会尽其所能地向前匹配,如果没有找到匹配,它会逐步回退,并重新尝试匹配正则的剩余部分,如此往复, 回退过程会一直持续到 [bcd]* 的匹配次数为零。如果随后的匹配还是失败了,那么引擎将得出结论:这个 字符串与正则表达式不匹配。 正则表达式中另一个常用的重复元字符是 +,它表示匹配一次或更多次。要特别注意 * 与 P Python 3.11.10 正则表达式 HOWTO 此时,匹配引擎已经到达了正则表达式的尽头,并且成功匹配到了 'abcb' 。这个例子表明了匹配引擎一开 始会尽其所能地向前匹配,如果没有找到匹配,它会逐步回退,并重新尝试匹配正则的剩余部分,如此往复, 回退过程会一直持续到 [bcd]* 的匹配次数为零。如果随后的匹配还是失败了,那么引擎将得出结论:这个 字符串与正则表达式不匹配。 正则表达式中另一个常用的重复元字符是 +,它表示匹配一次或更多次。要特别注意 * 与 P- [^:]+)\s*:(?P - .*?)\s*$") 7 反馈 正则表达式是一个复杂的主题。这份文档是否有助于你理解它们?是否存在不清楚的部分,或者你遇到的问 题未在此处涉及?如果是,请向作者发送改进建议。 关于正则表达式的最完整的书几乎肯定是由 O’Reilly 出版的 Jeffrey Friedl 的 Mastering Regular Expressions 。不 幸的是,它专注于 Perl 0 码力 | 19 页 | 403.22 KB | 11 月前3
 Python 3.9.20 正则表达式 HOWTO 此时,匹配引擎已经到达了正则表达式的尽头,并且成功匹配到了 'abcb' 。这个例子表明了匹配引擎 一开始会尽其所能地向前匹配,如果没有找到匹配,它会逐步回退,并重新尝试匹配正则的剩余部分, 3 如此往复,回退过程会一直持续到 [bcd]* 的匹配次数为零。如果随后的匹配还是失败了,那么引擎将 得出结论:这个字符串与正则表达式不匹配。 正则表达式中另一个常用的重复元字符是 +,它表示匹配一次或更多次。要特别注意 * 与 P Python 3.9.20 正则表达式 HOWTO 此时,匹配引擎已经到达了正则表达式的尽头,并且成功匹配到了 'abcb' 。这个例子表明了匹配引擎 一开始会尽其所能地向前匹配,如果没有找到匹配,它会逐步回退,并重新尝试匹配正则的剩余部分, 3 如此往复,回退过程会一直持续到 [bcd]* 的匹配次数为零。如果随后的匹配还是失败了,那么引擎将 得出结论:这个字符串与正则表达式不匹配。 正则表达式中另一个常用的重复元字符是 +,它表示匹配一次或更多次。要特别注意 * 与 P- [^:]+)\s*:(?P - .*?)\s*$") 17 7 反馈 正则表达式是一个复杂的主题。这份文档是否有助于你理解它们?是否存在不清楚的部分,或者你遇到 的问题未在此处涉及?如果是,请向作者发送改进建议。 关于正则表达式的最完整的书几乎肯定是由 O’Reilly 出版的 Jeffrey Friedl 的 Mastering Regular Expressions 。不幸的是,它专注于 Perl 0 码力 | 18 页 | 401.42 KB | 11 月前3
 Python 3.9.20 正则表达式 HOWTO 此时,匹配引擎已经到达了正则表达式的尽头,并且成功匹配到了 'abcb' 。这个例子表明了匹配引擎一开 始会尽其所能地向前匹配,如果没有找到匹配,它会逐步回退,并重新尝试匹配正则的剩余部分,如此往复, 回退过程会一直持续到 [bcd]* 的匹配次数为零。如果随后的匹配还是失败了,那么引擎将得出结论:这个 字符串与正则表达式不匹配。 正则表达式中另一个常用的重复元字符是 +,它表示匹配一次或更多次。要特别注意 * 与 P Python 3.9.20 正则表达式 HOWTO 此时,匹配引擎已经到达了正则表达式的尽头,并且成功匹配到了 'abcb' 。这个例子表明了匹配引擎一开 始会尽其所能地向前匹配,如果没有找到匹配,它会逐步回退,并重新尝试匹配正则的剩余部分,如此往复, 回退过程会一直持续到 [bcd]* 的匹配次数为零。如果随后的匹配还是失败了,那么引擎将得出结论:这个 字符串与正则表达式不匹配。 正则表达式中另一个常用的重复元字符是 +,它表示匹配一次或更多次。要特别注意 * 与 P- [^:]+)\s*:(?P - .*?)\s*$") 7 反馈 正则表达式是一个复杂的主题。这份文档是否有助于你理解它们?是否存在不清楚的部分,或者你遇到的问 题未在此处涉及?如果是,请向作者发送改进建议。 关于正则表达式的最完整的书几乎肯定是由 O’Reilly 出版的 Jeffrey Friedl 的 Mastering Regular Expressions 。不 幸的是,它专注于 Perl 0 码力 | 18 页 | 400.78 KB | 11 月前3
 Python 3.11.10 正则表达式 HOWTO 此时,匹配引擎已经到达了正则表达式的尽头,并且成功匹配到了 'abcb' 。这个例子表明了匹配引擎 一开始会尽其所能地向前匹配,如果没有找到匹配,它会逐步回退,并重新尝试匹配正则的剩余部分, 如此往复,回退过程会一直持续到 [bcd]* 的匹配次数为零。如果随后的匹配还是失败了,那么引擎将 得出结论:这个字符串与正则表达式不匹配。 正则表达式中另一个常用的重复元字符是 +,它表示匹配一次或更多次。要特别注意 * 与 P Python 3.11.10 正则表达式 HOWTO 此时,匹配引擎已经到达了正则表达式的尽头,并且成功匹配到了 'abcb' 。这个例子表明了匹配引擎 一开始会尽其所能地向前匹配,如果没有找到匹配,它会逐步回退,并重新尝试匹配正则的剩余部分, 如此往复,回退过程会一直持续到 [bcd]* 的匹配次数为零。如果随后的匹配还是失败了,那么引擎将 得出结论:这个字符串与正则表达式不匹配。 正则表达式中另一个常用的重复元字符是 +,它表示匹配一次或更多次。要特别注意 * 与 P- [^:]+)\s*:(?P - .*?)\s*$") 7 反馈 正则表达式是一个复杂的主题。这份文档是否有助于你理解它们?是否存在不清楚的部分,或者你遇到 的问题未在此处涉及?如果是,请向作者发送改进建议。 关于正则表达式的最完整的书几乎肯定是由 O’Reilly 出版的 Jeffrey Friedl 的 Mastering Regular Expressions 。不幸的是,它专注于 Perl 0 码力 | 18 页 | 403.35 KB | 11 月前3
 Hello 算法 1.0.0b4 Python版数组与链表 hello‑algo.com 59 4.3. 列表 数组长度不可变导致实用性降低。在许多情况下,我们事先无法确定需要存储多少数据,这使数组长度的选 择变得困难。若长度过小,需要在持续添加数据时频繁扩容数组;若长度过大,则会造成内存空间的浪费。 为解决此问题,出现了一种被称为「动态数组 Dynamic Array」的数据结构,即长度可变的数组,也常被称 为「列表 List」。 Landis 在其 1962 年发表的论文“An algorithm for the organization of information”中提出了「AVL 树」。论文中详细描述了一系列操作,确保在持续添加和删除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 ) 。该方法的效率很高,当 ? 较小时,时间复杂度趋向 ?(?) ;当 ? 较大时,时间复杂度不会超过 ?(? log ?) 。 另外,该方法适用于动态数据流的使用场景。在不断加入数据时,我们可以持续维护堆内的元素,从而实现 最大 ? 个元素的动态更新。 # === File: top_k.py === def top_k_heap(nums: list[int], k: int) -> list[int]:0 码力 | 329 页 | 27.34 MB | 1 年前3 Hello 算法 1.0.0b4 Python版数组与链表 hello‑algo.com 59 4.3. 列表 数组长度不可变导致实用性降低。在许多情况下,我们事先无法确定需要存储多少数据,这使数组长度的选 择变得困难。若长度过小,需要在持续添加数据时频繁扩容数组;若长度过大,则会造成内存空间的浪费。 为解决此问题,出现了一种被称为「动态数组 Dynamic Array」的数据结构,即长度可变的数组,也常被称 为「列表 List」。 Landis 在其 1962 年发表的论文“An algorithm for the organization of information”中提出了「AVL 树」。论文中详细描述了一系列操作,确保在持续添加和删除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 ) 。该方法的效率很高,当 ? 较小时,时间复杂度趋向 ?(?) ;当 ? 较大时,时间复杂度不会超过 ?(? log ?) 。 另外,该方法适用于动态数据流的使用场景。在不断加入数据时,我们可以持续维护堆内的元素,从而实现 最大 ? 个元素的动态更新。 # === File: top_k.py === def top_k_heap(nums: list[int], k: int) -> list[int]:0 码力 | 329 页 | 27.34 MB | 1 年前3
 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378 24.3.3 改进的 shell 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379 25 Tk 形参,则将只有指定的键会被从缓存中移除。传给 only_keys 但在缓存中找不到的键会被忽略。 警告: 发起调用此函数可能会以令人惊讶的方式改变使用 ZoneInfo 的日期时间对象的语义;这 会修改进程范围内的全局状态并因此可能产生大范围的影响。只有在你确定你的需求时才使用它。 该类具有一个属性: ZoneInfo.key 这是一个只读的attribute,它返回传给构造器的 key 的值,该值应为一个 数组二分查找算法 源代码: Lib/bisect.py 这个模块对有序列表提供了支持,使得他们可以在插入新数据仍然保持有序。对于长列表,如果其包含元素 的比较操作十分昂贵的话,这可以是对更常见方法的改进。这个模块叫做bisect 因为其使用了基本的二分 (bisection)算法。源代码也可以作为很棒的算法示例(边界判断也做好啦!) 定义了以下函数: bisect.bisect_left(a,0 码力 | 2146 页 | 10.17 MB | 9 月前3 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378 24.3.3 改进的 shell 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379 25 Tk 形参,则将只有指定的键会被从缓存中移除。传给 only_keys 但在缓存中找不到的键会被忽略。 警告: 发起调用此函数可能会以令人惊讶的方式改变使用 ZoneInfo 的日期时间对象的语义;这 会修改进程范围内的全局状态并因此可能产生大范围的影响。只有在你确定你的需求时才使用它。 该类具有一个属性: ZoneInfo.key 这是一个只读的attribute,它返回传给构造器的 key 的值,该值应为一个 数组二分查找算法 源代码: Lib/bisect.py 这个模块对有序列表提供了支持,使得他们可以在插入新数据仍然保持有序。对于长列表,如果其包含元素 的比较操作十分昂贵的话,这可以是对更常见方法的改进。这个模块叫做bisect 因为其使用了基本的二分 (bisection)算法。源代码也可以作为很棒的算法示例(边界判断也做好啦!) 定义了以下函数: bisect.bisect_left(a,0 码力 | 2146 页 | 10.17 MB | 9 月前3
 Python 标准库参考指南 3.9.20 解析规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289 24.3.3 改进的 shell 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1290 25 Tk 图形用户界面 形参,则将只有指定的键会被从缓存中移除。传 给 only_keys 但在缓存中找不到的键会被忽略。 警告: 发起调用此函数可能会以令人惊讶的方式改变使用 ZoneInfo 的日期时间对象的语义; 这会修改进程范围内的全局状态并因此可能产生大范围的影响。只有在你确定你的需求时才使 用它。 该类具有一个属性: ZoneInfo.key 这是一个只读的attribute,它返回传给构造器的 key 的值,该值应为一个 数组二分查找算法 源代码: Lib/bisect.py 这个模块对有序列表提供了支持,使得他们可以在插入新数据仍然保持有序。对于长列表,如果其包含 元素的比较操作十分昂贵的话,这可以是对更常见方法的改进。这个模块叫做bisect 因为其使用了基 本的二分(bisection)算法。源代码也可以作为很棒的算法示例(边界判断也做好啦!) 定义了以下函数: bisect.bisect_left(a,0 码力 | 2015 页 | 10.12 MB | 9 月前3 Python 标准库参考指南 3.9.20 解析规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289 24.3.3 改进的 shell 兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1290 25 Tk 图形用户界面 形参,则将只有指定的键会被从缓存中移除。传 给 only_keys 但在缓存中找不到的键会被忽略。 警告: 发起调用此函数可能会以令人惊讶的方式改变使用 ZoneInfo 的日期时间对象的语义; 这会修改进程范围内的全局状态并因此可能产生大范围的影响。只有在你确定你的需求时才使 用它。 该类具有一个属性: ZoneInfo.key 这是一个只读的attribute,它返回传给构造器的 key 的值,该值应为一个 数组二分查找算法 源代码: Lib/bisect.py 这个模块对有序列表提供了支持,使得他们可以在插入新数据仍然保持有序。对于长列表,如果其包含 元素的比较操作十分昂贵的话,这可以是对更常见方法的改进。这个模块叫做bisect 因为其使用了基 本的二分(bisection)算法。源代码也可以作为很棒的算法示例(边界判断也做好啦!) 定义了以下函数: bisect.bisect_left(a,0 码力 | 2015 页 | 10.12 MB | 9 月前3
共 129 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13














