任何一种编程语言的学习都离不开阅读官方文档以及教程,学会如何查阅帮助文档是学习一门新的编程语言的最佳捷径,本文以对比的形式简单讨论如何快速查阅Matlab、Python和Jupyter文档。

在MATLAB中我们常使用help funcdoc func来在桌面软件中获取matlab函数的快捷简单文档复杂详细文档,另外还能在Mathworks官网得到最新的help文档和中文翻译,这对于初入Matlab的非计算机专业学生的入门是有益且高效的(官翻中文需要试用版或其他正版许可证)。

1. 参数提示

1.1 Matlab

在Matlab中我们在输入`func('后,等待几秒系统会自动弹出这个函数所需的输入参数。
Matlab参数提示

1.2 Jupyter Notebook

在Python中,并无如此简洁的参数提示,这是由于Matlab限定了各个参数的组合形式,在某一组合下必须输入几个参数;而在Python中传入的参数是可以叠加的,因此类似的参数提示方式是Shift+Tab,按一次组合键显示基本信息,两次显示详细信息,三次延时停留信息框。

Jupyter Notebook: Shift+Tab 一次
Jupyter Notebook: Shift+Tab 一次
Jupyter Notebook: Shift+Tab 两次
Jupyter Notebook: Shift+Tab 两次
Jupyter Notebook: Shift+Tab 三次
Jupyter Notebook: Shift+Tab 三次

1.3 Jupyter Lab

同样是Shift+Tab,但只有一种形式。
Jupyter Lab: Shift+Tab

1.4 VS code

VS称之为IntelliSense,在输入`func('后,瞬间弹出可输入的参数及简单介绍,专业编辑器的黑科技果然不一样。好评!!
VS code: func(

2. 快捷文档

2.1 Matlab

在命令号中输入help func,可获得较短的帮助文档(无语法高亮)。
Matlab: help func

2.2 Jupyter Notebook

在命令行中输入func?可在浮窗获得较短的帮助文档(无语法高亮),等同于按四次Shift+Tab组合键;
在命令行中输入help(func)可得到函数的简洁文档,有的包内使用info可查询文档;
在命令行中输入func(,且安装有Hinterland插件,可在浮窗获得较短的帮助文档(无语法高亮),等同于按一次Shift+Tab组合键。
Jupyter Notebook: func(
Jupyter Notebook: info

3.3 Jupyter Lab

在命令行输入func?help(func)可在命令行的输出框中得到函数的简洁文档(无语法高亮),有的包内使用info可查询文档;
Jupyter Lab: func?
Jupyter Lab: func?
Jupyter Lab: info

3.4 VS code

直接将鼠标移到函数或包的名称上即可显示。
VS code: 鼠标指向包np
VS code: 鼠标指向函数np.array

3. 详细文档

3.1 Matlab

在命令号中输入doc func、在MATLAB官网的帮助页面、在MATLAB软件中的右上角搜索栏中均可搜索详细的帮助文档(带语法高亮)。
MATLAB: doc func

3.2 Python

在各个包官网的Document页面搜索函数可获得最全的完整文档(带语法高亮及跳转链接)。
Python包的网页Document

4. 函数原文件

4.1 Matlab

在命令行中输入type func可在命令行中得到函数的原始文件(无语法高亮),输入edit func可在新窗口打开原始文件(带语法高亮),通过阅读原始文件的写法常常可以学到编程语言的内建函数是如何编写的。
Matlab: type func
Matlab: edit func

4.2 Jupyter Notebook

在命令行输入func??可在命令行下方的浮窗得到函数的原始文件(带语法高亮)。
Jupyter Notebook: func??

4.3 Jupyter Lab

在命令行输入func??可在命令行的输出框中得到函数的原始文件(带语法高亮)。
Jupyter Lab: func??

5.自动补全

5.1 Matlab

Tab自带自动补全。
Matlab: Tab

5.2 Jupyter Notebook

自带部分自动补全,安装Hinterland插件,按Tab会在下拉菜单中弹出可能的匹配内容,实现更好的自动补全。
Jupyter Notebook: Tab

5.3 Jupyter Lab

自带部分自动补全,安装lsp插件,按Tab实现更好的自动补全(带配色),如提示可输入参数,所包含函数等。
Jupyter Lab:Tab 提示参数
Jupyter Lab:Tab 提示函数

5.4 VS code

VS code是我用过的最快,显示效果最好的自动补全,仿佛它能想在你输入之前。缺点是只能顺序输入,而不是按tab弹出,和固有习惯不太一样。
VS code: 自动补全

6. Jupyter快捷键

shortcut.jpg

快捷键

命令模式 (按键 Esc 开启)
Enter : 转入编辑模式
Shift-Enter : 运行本单元,选中下个单元
Ctrl-Enter : 运行本单元
Alt-Enter : 运行本单元,在其下插入新单元
Y : 单元转入代码状态
M :单元转入markdown状态
R : 单元转入raw状态
1 : 设定 1 级标题
2 : 设定 2 级标题
3 : 设定 3 级标题
4 : 设定 4 级标题
5 : 设定 5 级标题
6 : 设定 6 级标题
Up : 选中上方单元
K : 选中上方单元
Down : 选中下方单元
J : 选中下方单元
Shift-K : 扩大选中上方单元
Shift-J : 扩大选中下方单元
A : 在上方插入新单元
B : 在下方插入新单元
X : 剪切选中的单元
C : 复制选中的单元
Shift-V : 粘贴到上方单元
V : 粘贴到下方单元
Z : 恢复删除的最后一个单元
D,D : 删除选中的单元
Shift-M : 合并选中的单元
Ctrl-S : 文件存盘
S : 文件存盘
L : 转换行号
O : 转换输出
Shift-O : 转换输出滚动
Esc : 关闭页面
Q : 关闭页面
H : 显示快捷键帮助
I,I : 中断Notebook内核
0,0 : 重启Notebook内核
Shift : 忽略
Shift-Space : 向上滚动
Space : 向下滚动
编辑模式 ( Enter 键启动)
Tab : 代码补全或缩进
Shift-Tab : 提示
Ctrl-] : 缩进
Ctrl-[ : 解除缩进
Ctrl-A : 全选
Ctrl-Z : 复原
Ctrl-Shift-Z : 再做
Ctrl-Y : 再做
Ctrl-Home : 跳到单元开头
Ctrl-Up : 跳到单元开头
Ctrl-End : 跳到单元末尾
Ctrl-Down : 跳到单元末尾
Ctrl-Left : 跳到左边一个字首
Ctrl-Right : 跳到右边一个字首
Ctrl-Backspace : 删除前面一个字
Ctrl-Delete : 删除后面一个字
Esc : 进入命令模式
Ctrl-M : 进入命令模式
Shift-Enter : 运行本单元,选中下一单元
Ctrl-Enter : 运行本单元
Alt-Enter : 运行本单元,在下面插入一单元
Ctrl-Shift-- : 分割单元
Ctrl-Shift-Subtract : 分割单元
Ctrl-S : 文件存盘
Shift : 忽略
Up : 光标上移或转入上一单元
Down :光标下移或转入下一单元

7. Doc地址

作为一个能够熟练使用Matlab的科研工作者,在学习和使用Python时,阅读官方文档也是必须的一个步骤,特别是当你使用一个新涉猎的包时。

下面列举了几个海洋科研工作者常用包的文档地址:
https://docs.python.org/3/ (此页包含中文)
https://docs.scipy.org/doc/numpy/reference/
https://docs.scipy.org/doc/scipy/reference/
https://matplotlib.org/contents.html
https://pandas.pydata.org/pandas-docs/stable/
http://xarray.pydata.org/en/stable/index.html

当然,最简单的方式还是直接谷歌搜索~

P.S.

另外附一个毫不相关的小东西:
中文文案排版指北(https://github.com/sparanoid/chinese-copywriting-guidelines

参考

https://zhuanlan.zhihu.com/p/101070029
https://zhuanlan.zhihu.com/p/32600329
https://code.visualstudio.com/docs/python/python-tutorial

Last modification:January 20th, 2020 at 01:03 am
If you think my article is useful to you, please feel free to appreciate