随笔分类 -  实用的Python编程

《practical python programming》的中文翻译,以意译为主,目录不翻译,只翻译内容。英文原版见:https://github.com/dabeaz-course/practical-python
摘要:实用的 Python 编程——讲师说明 作者:戴维·比兹利(David Beazley) 概述 对于如何使用我的课程“实用的 Python 编程”进行教学的问题,本文档提供一些通用的说明和建议,包括课程目标、课程受众、棘手的内容等。 一些人会在一个典型的、为期三天的公司培训中进行教学,本说明就是提供 阅读全文
posted @ 2021-04-24 20:49 codists 阅读(270) 评论(0) 推荐(1) 编辑
摘要:完结! 你已经完成了本课程。感谢你的关注,感谢你花时间和精力学习本课程。祝你在未来的 Python 编程中快乐并有所收获。 我总是很高兴能够收到反馈。你可以在 https://dabeaz.com或者推特( @dabeaz )上找到我。 — — 戴维·比兹利(David Beazley) 目录 注: 阅读全文
posted @ 2021-04-20 22:46 codists 阅读(59) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (9.2 第三方包) | 下一节 (完结) 9.3 Distribution版本分发 在某些时候,你可能想要将自己的代码提供给其他人——可能只是同事(使用)。本节给出执行此操作的最基本技术。更多详细信息,请参考 Python 打包用户指南。 创建 setup.py 文件 请添加一个 阅读全文
posted @ 2021-04-19 18:43 codists 阅读(49) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (9.1 包) | 下一节 (9.3 版本分发) 9.2 第三方模块 Python 拥有一个包含各种内置模块的大型库(自带电池(batteries included))(译注:“自带电池”来自于官方文档的翻译,意为“功能齐全”)。 甚至还有很多第三方模块(可以使用)。请到 Pyth 阅读全文
posted @ 2021-04-18 10:03 codists 阅读(166) 评论(0) 推荐(0) 编辑
摘要:目录| 上一节 (8.3 调试) | 下一节 (9.2 第三方包) 9.1 包 如果编写一个较大的程序,我们并不真的想在顶层将其组织为一个个独立文件的大型集合。本节对包(package)进行介绍。 模块 任何一个 Python 源文件称为一个模块(module)。 # foo.py def grok 阅读全文
posted @ 2021-04-16 16:43 codists 阅读(312) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (8 测试和调试) 9 包 我们将以“如何把代码组织成包结构”这一主题结束本课程。同时,也将对第三方包的安装、如何将自己的代码提供给其他人使用进行讨论。 在 Python 开发中,打包(packaging)是一个演进的,复杂的主题。本节主要关注一些通用的代码组织原则,而不是特定的工 阅读全文
posted @ 2021-04-13 15:35 codists 阅读(38) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (8.2 日志) | 下一节 (9 包) 8.3 调试 调试建议 假设程序崩溃了: bash % python3 blah.py Traceback (most recent call last): File "blah.py", line 13, in ? foo() File 阅读全文
posted @ 2021-04-11 20:28 codists 阅读(295) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (8.1 测试) | 下一节 (8.3 调试) 8.2 日志 本节对日志模块(logging module)进行简单的介绍。 logging 模块 logging 模块是用于记录诊断信息的 Python 标准库模块。日志模块非常庞大,具有许多复杂的功能。我们将会展示一个简单的例子来 阅读全文
posted @ 2021-04-10 22:55 codists 阅读(260) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (7.5 装饰方法 | 下一节 (8.2 日志) 8.1 测试 多测试,少调试(Testing Rocks, Debugging Sucks) Python 的动态性质使得测试对大多数程序而言至关重要。编译器不会发现你的 bug,发现 bug 的唯一方式是运行代码,并确保尝试了所有 阅读全文
posted @ 2021-04-09 22:52 codists 阅读(291) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (7 高级主题) | 下一节 (9 包) 8. 测试和调试 本节介绍与测试、日志和调试有关的基本主题。 8.1 测试 8.2 日志,错误处理和诊断 8.3 调试 目录 | 上一节 (7 高级主题) | 下一节 (9 包) 注:完整翻译见 https://github.com/cod 阅读全文
posted @ 2021-04-08 13:55 codists 阅读(41) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (7.4 装饰器) | 下一节 (8 测试和调试) 7.5 装饰方法 本节讨论一些与方法定义结合使用的内置装饰器。 预定义的装饰器 在类定义中,有许多预定义的装饰器用于指定特殊类型的方法。 class Foo: def bar(self,a): ... @staticmethod 阅读全文
posted @ 2021-04-07 14:09 codists 阅读(120) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (1 Python 简介) | 下一节(3 程序组织) 2. 处理数据 要编写有用的程序,您需要能够处理数据。本节介绍 Python的核心数据结构: 元组(tuple),列表(list),集合(set)和字典(dict),并讨论常见的数据处理习惯用法。本节的最后一部分深入探讨 Py 阅读全文
posted @ 2021-04-06 17:09 codists 阅读(46) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (7.3 返回函数) | 下一节 (7.5 装饰方法) 7.4 函数装饰器 本节介绍装饰器(decorator)。因为这是一个高级主题,所以我们只做简单介绍。 译注:根据译者个人的猜测,在《设计模式》(《 Design Patterns: Elements of Reusable 阅读全文
posted @ 2021-03-23 23:42 codists 阅读(87) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (7.2 匿名函数) | 下一节 (7.4 装饰器) 7.3 返回函数 本节介绍使用函数创建其它函数的思想。 简介 考虑以下函数: def add(x, y): def do_add(): print('Adding', x, y) return x + y return do_a 阅读全文
posted @ 2021-03-22 08:44 codists 阅读(37) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (7.1可变参数) | 下一节 (7.3 返回函数) 7.2 匿名函数和 Lambda 再探列表排序 列表可以使用 sort 方法进行原地(in-place)排序: s = [10,1,7,3] s.sort() # s = [1,3,7,10] 也可以进行降序排序(译注:原文使用 阅读全文
posted @ 2021-03-21 23:15 codists 阅读(29) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (6.4 生成器表达式) | 下一节 (7.2 匿名函数) 7.1 可变参数 本节介绍可变(variadic)参数。有时,可变参数使用 *args 和 **kwargs 进行表示。 可变位置参数(*args) 如果一个函数接受任意数量的(位置)参数,那么我们称该函数使用了可变参数( 阅读全文
posted @ 2021-03-20 09:49 codists 阅读(44) 评论(0) 推荐(0) 编辑
摘要:目录| 上一节 (6 生成器) | 下一节 (8 测试和调试) 7. 高级主题 本节,我们将探究一些高级的 Python 特性。你可能会在日常编程中遇到这些特性。虽然许多特性本可以在前面的章节中介绍,但是却没有介绍并不是为了让你在当时避免肝脑涂地。 应该强调的是:本节主题旨在对这些(特性的)思想做基 阅读全文
posted @ 2021-03-19 22:42 codists 阅读(54) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (6.2 自定义迭代) | 下一节 (6.4 生成器表达式) 6.3 生产者,消费者和管道 生成器在设置各种生产者/消费者问题(producer/consumer problems)和数据流管道(pipeline)中非常有用。本节将对此进行讨论。 生产者消费者问题 生成器与各种形式 阅读全文
posted @ 2021-03-17 23:54 codists 阅读(82) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (6.1 迭代协议) | 下一节 (6.3 生产者/消费者) 6.2 自定义迭代 本节探究如何使用生成器函数自定义迭代。 问题 假设你想要自定义迭代模式。 例如:倒数: >>> for x in countdown(10): ... print(x, end=' ') ... 10 阅读全文
posted @ 2021-03-16 23:41 codists 阅读(316) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (5.2 封装) | 下一节 (6.2 自定义迭代) 6.1 迭代协议 本节将探究迭代的底层过程。 迭代无处不在 许多对象都支持迭代: a = 'hello' for c in a: # Loop over characters in a ... b = { 'name': 'Da 阅读全文
posted @ 2021-03-15 14:42 codists 阅读(239) 评论(0) 推荐(0) 编辑