开始再战 Python - 重新入门 - 工具篇

两年前想摸摸 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 以上相关工具的小结:

  1. 最快捷的方式应该还是 python3 控制台,因内置的,能 SSH 远程用
  2. 本地可以考虑用 ipython,控制台还有语法高亮
  3. Jupyter Notebook 还是很值的玩味,比如对它的扩展使用,支持更多的语言和功能
  4. 另外在离线状态下,多用用 help(), dir(), globals(), locals() 等函数来查看信息

类别: Python. 标签: , , . 阅读(26). 订阅评论. TrackBack.

Leave a Reply

avatar