编程

理解 Python 的 asyncio

如何开始使用 Python 的 asyncio。今年早些时候,我参加了国际 Python 会议 PyCon。一个在众多演讲中提出并在走廊里非正式讨论的话题是 Python 中线程的状态——简而言之,它既不理想,也不像一些评论家认为的那么糟糕。

Python 的 Mypy——高级用法

Mypy 可以检查比简单的 Python 类型更多的内容。在我的上一篇文章中,我介绍了 Mypy,一个在 Python 程序中强制执行类型检查的包。Python 本身是,并且永远都将保持,一种动态类型语言。但是,Python 3 支持“注解”,这是一种允许您将对象附加到变量、函数参数和函数返回值的功能。这些注解会被 Python 本身忽略,但它们可以被外部工具使用。

构建您自己的互联网收音机接收器

只需按一下按钮,即可收听世界各地的社区。晚上回到家时,我喜欢按一下按钮就能收听世界的声音。我曾在许多不同的地方居住过——从新西兰的达尼丁到新墨西哥州的圣达菲——在每个城镇,我都爱上了一个电台(通常是一个社区电台),它体现了这个地方的精神。只需按一下按钮,我就可以重新与这些地方同步,并且还可以通过互联网收音机访问新的社区。

这个 #! (Hash-Bang) 玩意儿在我的 Bash 脚本中到底是什么 @#$%&! (Heck)

  您已经见过无数次了——脚本顶部的 hash-bang (#!) 行——无论是 Bash、Python、Perl 还是其他某种脚本语言。而且,我相信您知道它的目的是什么:它指定了用于执行脚本的脚本解释器。但是,您知道它是如何实际工作的吗?您最初的想法可能是您的 shell (bash) 读取该行,然后执行指定的解释器,但这根本不是它的工作方式。它的实际工作方式是这篇文章的主要重点,但我也想介绍如果您有兴趣,如何创建您自己的“hash-bang”版本。

Linux...为了孩子们而做

一些有趣且具有教育意义的儿童 Linux 软件的概述。我可能会后悔这个标题。多年来,我一直在嘲笑“为了孩子们而做”这句话。当你在让你同意任何生活方式、议程、法律、食物变化方面都失败时,人们会求助于这些“理由”之一——随便你怎么称呼它。听到这些话,我比你能说出“迷人”的速度还要快地挑起斯波克眉毛。好吧,假装我没有用这个评论开始这篇文章。我们不妨试试这个。

孩子们接管

与 Linux 一样,这些孩子都热衷于制作东西——然后让它们变得更好。他们也反对现有的自上而下的系统,他们将改革或击败这些系统。这是唯一的选择。

Rust 中的文本处理

在 Rust 中创建方便的命令行实用程序。本文是关于 Rust 中的文本处理,但它也包含一个模式匹配的快速介绍,这在处理文本时非常方便。字符串是 Rust 中的一个巨大主题,这可以很容易地通过 Rust 有两种数据类型来表示字符串以及支持用于格式化字符串的宏来实现。然而,所有这些也证明了 Rust 在字符串和文本处理方面的强大功能。

考虑新的 C 扩展

Matthew Wilcox 最近意识到,依赖 Plan 9 变体的 C 编程语言提供的 C 扩展可能具有价值。所有需要做的就是在编译内核时使用 -fplan9-extensions 命令行参数。正如 Matthew 指出的那样,GCC 从 4.6 版本开始就支持 Plan 9 扩展,这是内核支持的最低版本。因此,理论上不会有冲突。

更多罗马数字和 Bash

在罗马时:完成罗马数字转换器脚本。在我的上一篇文章中,我开始深入研究一个经典的计算机科学难题:将罗马数字转换为阿拉伯数字。首先,更准确的说法应该是印度-阿拉伯数字,值得一提的是,它被认为是在公元一世纪到四世纪之间发明的——一个基于 0..9 值的计数系统。

关于 ncurses 颜色

为什么 ncurses 只支持八种颜色?如果您研究过 curses 中可用的调色板,您可能会想知道为什么 curses 只支持八种颜色。curses.h 包含文件定义了这些颜色宏:COLOR_BLACK COLOR_RED COLOR_GREEN COLOR_YELLOW COLOR_BLUE COLOR_MAGENTA COLOR_CYAN COLOR_WHITE 但为什么只有八种颜色,以及为什么是这些特定的颜色?至少对于 Linux 控制台,如果您在 PC 上运行,颜色范围的起源在于 PC 硬件。

使用 Python 的 pytest 测试您的代码,第二部分

测试函数并不难,但是您如何测试用户输入和输出?在我的上一篇文章中,我开始研究“pytest”,这是一个用于测试 Python 程序的框架,它真的改变了我看待测试的方式。这是我第一次真正感觉测试是我可以并且应该定期做的事情;pytest 使事情变得如此简单直接。

使用 Python 的 pytest 测试您的代码

不要测试你的代码?pytest 消除了任何借口。软件开发人员不仅仅编写软件;他们也使用软件。因此,他们是第一个认识到并理解软件是复杂且不可避免地包含错误的人。