两年前想摸摸 Python 的门道,简要记录了一篇 我的 Python 快速入门,当时只觉得那是一种与 C/Java 异样风格的编程语言,没领会到特别之处。如今对 Python 的感受就不一般了,因为是云服务,机器学习,人工知道大行其道的年代,所以更为急迫的想把它好好弄明白。
Python 3 说是设计的比 Python 2 要合理的多,所以没有保持向后兼容,现在初学 Python 对于选择哪个版本的 Python 时没有任何犹豫了,当然拣最新的 Python 3 学了。因此各种命令行工具都得用有 3 标记的,如 python3
, pip3
, pydoc3
。
编程语言特别是脚本语言,简单验证或入门最需要一个 REPL
工具,这里不论大型项目时最好选择全功能型的 IDE,像 PyCharm 这样的重型武器。在安装 Python 3 后,它自带了两个,分别是 python3
和 idle3
(据说是 Integrated DeveLopment Environment 的缩写词, 可没见这么简陋的 IDE)
Python
命令 python3
进到控制台的 Python 交互界面,Python 标准的 >>>
提示符。没有语法高亮,没有自动缩进,唯一高级点的功能就是 tab
能对变量可以方法,属性的自动完成。
别瞧它最简陋,但它总是最起眼的,因为这是一个终端程序,Python 内置的,所以连接到服务器最有效的就数它了。
IDLE
命令 idle3
将启动一个 Tcl/Tk 写的 UI,也是用的 >>>
提示符,有高亮语法显示,自动缩进,带简单的调试功能。对变量和常量按 tab
键都有智能下拉提示。Mac OS 下 ctrl-p
, ctrl-n
上下命令间重复。
介绍完内置的两个工具,还试试第三方的两个增强版的 ipython
和 jupiter
.
IPython
需用 pip3 install ipython
进行安装,启动命令 ipython
,是一个控制台程序,说明 ssh 远程连接环境下也是可用的。不再是 >>>
提示符,还是像 In [1]
, Out [1]
(如果有输出的情况下), In [2]
这样递进的提示。别看是个控制台程序,语法高亮,自动缩进,智能提示样样都有。 还内置了许有有用的功能和函数,还能执行 shell
命令
注意到 In[1], Out[1] 还是有意义的,当一个匿名变量时,就能够用 Out[x] 重新引用到它。看上面的 100 + 99
没指定变量名,它的值放到 Out[1]
中了,所以才能用 print(Out[1])
打印出它的值来。这很像 Scala 控制台的 res1
, res2
这样追踪匿名变量的。In[x] 也是一样的,前面的输入还能够重新展示出来的,比如说 print(Int[5])
。
更多内容可以看这里 https://ipython.readthedocs.io/en/stable/interactive/tutorial.html
Jupyter
需要先安装它,命令为 pip3 install jupyter
Jupyter QtConsole
执行命令 jupyter qtconsole
进行一个 QT 界面的 ipython。命令 ipython qtconsole
也行,但已不推荐使用。如果没有安装 QT 组件,必须先用 pip3 install pyqt5
安装后再运行 jupyter qtconsole
。
Jupyter QtConsole
除拥有 ipython
所有功能外,在智能提上有所增强,已经显现出 IDE 的雏形
Jupyter Notebook
这个是我决定写下这篇,对 IPython
稍加深入后的一个意外收获,曾经隐约间见过,但不知其明,如今终于知道原来是 Jupyter Notebook
这个鬼东西。
要么没听说 Jupyter Notebook
, 继续懵懂,一旦接触了就分外的惊喜。它居然是一个基于 Web 界面的,支持 40 多种编程语言的交互,并提供代码分享,建模,可视化数据等等。
启动 Jupyter Notebook 的命令很简单,只要执行 jupyter notebook
,就会自动打开默认的浏览器进到它的 Web UI,或者从控制台拷贝提示的带 token 的 URL 在别的浏览器中打开。下面是选择创建一个 Python 3 的 Notebook,对其他语言的支持还需作额外的组件安装或设置。
对于 Python 3 以上相关工具的小结:
- 最快捷的方式应该还是 python3 控制台,因内置的,能 SSH 远程用
- 本地可以考虑用 ipython,控制台还有语法高亮
- Jupyter Notebook 还是很值的玩味,比如对它的扩展使用,支持更多的语言和功能
- 另外在离线状态下,多用用
help()
,dir()
,globals()
,locals()
等函数来查看信息
本文链接 https://yanbin.blog/python-again-lightweight-tools/, 来自 隔叶黄莺 Yanbin Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。