练习 5:cat

原文:Exercise 5: cat

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

做完练习 4,你开始了解阻碍你的东西。spike 研究是一个简单的挑战,即如何从用户获取命令行参数。练习的真正目的是记录实验笔记,了解你需要做什么来开始。你有没有发现需要改变的东西?任何奇怪的习惯或配置问题?在这个练习中,你将创建一个名为cat的简单命令的副本,但你的真正目的是选择一件事来更改你的配置,以便你更快入门。记住,关键不是你的cat的实现。而是你的起步有多快,以及在45分钟内做一些有用的事情。

与以前的练习一样,坚持45分钟的最后期限。为你在练习上花费多少时间设置限制,是让你进入编码模式的有用技巧。事实上,如果你每天花45分钟的时间来热身,这是今后的理想实践。在你可以做到它之前,你需要一个更好的开始,所以找到你今天破除的障碍,让我们开始吧。

警告

我会再说一次,使之更清楚:你不能在这个练习中失败。如果你将45分钟的限制看做一个分级练习,并存在你应该或不应该做的有多好的任何期望,那么你就错了。理解这 45 分钟的最佳方式是,它仅仅是一个机制,在后面踢你,让你往前走。这不是一个考验。我重申,这不是一个考验。不断告诉自己,放松下来,尽管去做吧。

挑战练习

cat命令是“链接”的缩写,它最常用于将文件的内容转储到屏幕上。这样使用:

  1. cat somefile.txt

该命令输出somefile.txt的内容。这实际上并不是原始目的。最初是用于组合多个文件 - 因此它被称为cat。为此,只需将每个文件添加到cat

  1. cat A.txt B.txt C.txt

然后,cat命令遍历每个文件,将其内容输出出来,然后在遍历完所有文件时退出。问题是,这怎么能连接文件?为此,还需要使用终端中找到的 POSIX 文件重定向功能:

  1. cat A.txt B.txt C.txt> D.txt

你应该熟悉>符号的用法,如果不是,那么你需要复习基本的 Unix shell 操作。它只需要cat命令的标准输出(在这种情况下,它是A.txt B.txt C.txt的全部内容组合),并将其写入右侧的D.txt文件。

你需要尽快重新实现cat命令,使用你从练习 4 中学到的命令行参数。请记住,要执行标准输出,只需使用 Python 中的print即可。要了解更多有关cat的信息,请使用man命令:

  1. man cat

这是cat命令的手册,在45分钟内,你可以得到尽可能多的实现奖励积分。

答案

你可以在 github 的 http://bit.ly/lmpthwsolve 仓库中找到我的解决方案。它在ex5/中,你会看到我完成了一个相当简单和肮脏的解决方案。如果你开始这个练习并且担心质量或创造力,那么你这样做是错误的。你的任务是马虎,快速,使之完成。时间限制的关键是,让你摆脱这个想法,每次按下键盘,都必须写出完美的代码来崇拜。尽你所能去做,然后之后你可以分析它并看到改进的地方。

研究性学习

  • 有没有任何cat的惊人功能,你从未使用或难以实现?
  • 你能从你的启动流程中破除一个障碍嘛?这比实现cat更重要,所以如果你没有破除这个障碍,那么你需要再做一遍这个练习。
  • 你能找到更多阻碍你的东西吗?简单的事情,如你的颈椎病,因为你座位太低了?没有一个很好的键盘?你的精神状态怎么样?有没有你以为阻止你的东西?你能停止思考它们吗?

深入学习

这不是一本自助手册,我不会修改你的心智,但我发现,学习新事物的巨大障碍,不是主题,而是你的恐惧。如果在这个练习中发现,缺失的想法或恐惧让你无法开始,那么我建议你在实现 45 分钟的黑魔法之前,先花 10 分钟记录你感觉如何。写下你的恐惧,焦虑和感觉将表达他们,并帮助你了解,担心一些事情是非常不实际的,因为它们就像 45 分钟的黑魔法那样简单。尝试一下。你会感到惊讶的是,关于你的感觉的 10分钟的写作会改变你的感觉。