<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Reading Great Code
Commom Features of great code
每个定义的函数包含的代码大多不超过20行；含有很多空行；对于交互型代码（例如Requests和Flask等），都有大量的doctoring或者comment，综合下来五分之一的代码内容是可以作为文档使用的。不过像HowDoI这种直接的不是用语交互的代码，并没有必要去包含大量的comment。
下面，我们就跟着学习下如何读不同风格的代码。
HowDoI
HowDoI，code代码总数只有300行左右，可以作为阅读代码的首选。
Reading a single-file script
scirpt通常有一个清晰的starting point和一个清晰的ending point，以及其他定义清晰的操作。这使得sciprt会比一般的提供API的库
更容易follow。
关于howdoi，可以Google下，然后从github下载到。
安装： pip install --editable .　
unit test： python test_howdoi.py
Read howdoi's documentation
HowDoI的文档是README.rst文件，从中可以看出 HowDoI是一个很小的命令行应用，它可以允许使用者从互联网上获取关于编程问题的答案。
Step1:  通过帮助文档，我们可以了解到HowDoI大概的工作模式以及它的一些功能，例如可以colorize the output，get multiple answers，
keep answers in a cache that can be clared等。
Use HowDoI
Step2:  Read HowDoI's code
在howdoi的目录中，除了__pycache__之外其实只有两个文件，即__init__.py 和 howdoi.py。
前者只有一行，包含了版本信息；而后者则是我们即将精读的代码。
Step3:  通过浏览howdoi.py，我们发现这里面定义了很多新的函数，而且每个函数都会在之后的函数中被引用，这是的我们可以方便follow。
其中的main function，即 command_line_runner()接近于 howdoi.py的底部
<ASSISTANT_TASK:>
Python Code:
!which howdoi
!howdoi --help   #注意我这里是在jupyter notebook里面直接使用的，所以需要加感叹号。如果是在terminal上，不需要加叹号。
Explanation: Reading Great Code
Commom Features of great code
每个定义的函数包含的代码大多不超过20行；含有很多空行；对于交互型代码（例如Requests和Flask等），都有大量的doctoring或者comment，综合下来五分之一的代码内容是可以作为文档使用的。不过像HowDoI这种直接的不是用语交互的代码，并没有必要去包含大量的comment。
下面，我们就跟着学习下如何读不同风格的代码。
HowDoI
HowDoI，code代码总数只有300行左右，可以作为阅读代码的首选。
Reading a single-file script
scirpt通常有一个清晰的starting point和一个清晰的ending point，以及其他定义清晰的操作。这使得sciprt会比一般的提供API的库
更容易follow。
关于howdoi，可以Google下，然后从github下载到。
安装： pip install --editable .　
unit test： python test_howdoi.py
Read howdoi's documentation
HowDoI的文档是README.rst文件，从中可以看出 HowDoI是一个很小的命令行应用，它可以允许使用者从互联网上获取关于编程问题的答案。
End of explanation
!howdoi --num-answers 3 python lambda function list comprehension
!howdoi --num-answer 3 python numpy array create
Explanation: 通过帮助文档，我们可以了解到HowDoI大概的工作模式以及它的一些功能，例如可以colorize the output，get multiple answers，
keep answers in a cache that can be clared等。
Use HowDoI
End of explanation
!ls /Users/ywfang/FANG/git/howdoi_ywfang/howdoi
Explanation: Read HowDoI's code
在howdoi的目录中，除了__pycache__之外其实只有两个文件，即__init__.py 和 howdoi.py。
前者只有一行，包含了版本信息；而后者则是我们即将精读的代码。
End of explanation
!sed -n '70,120p' /Users/ywfang/FANG/git/howdoi_ywfang/howdoi/howdoi.py
Explanation: 通过浏览howdoi.py，我们发现这里面定义了很多新的函数，而且每个函数都会在之后的函数中被引用，这是的我们可以方便follow。
其中的main function，即 command_line_runner()接近于 howdoi.py的底部
End of explanation
<END_TASK>