当我第一次学习Python时,所有的教程都要求你使用Python的交互模式。对我来说,这种方式很难保存、编写长程序或编辑现有代码行。相比在code.py文件中打开解释器并直接运行,似乎更加困难。
python code.py
我来自Java背景,所以我有一种根深蒂固的写程序并编译文件的期望。我也知道如果一个特性在Python文档中没有明显用处的话,它就不会那么突出。那么我错过了什么呢?
当我第一次学习Python时,所有的教程都要求你使用Python的交互模式。对我来说,这种方式很难保存、编写长程序或编辑现有代码行。相比在code.py文件中打开解释器并直接运行,似乎更加困难。
python code.py
我来自Java背景,所以我有一种根深蒂固的写程序并编译文件的期望。我也知道如果一个特性在Python文档中没有明显用处的话,它就不会那么突出。那么我错过了什么呢?
让我们来看看:
如果你想知道某件事情是如何工作的,你可以尝试一下。没有必要写一个文件。我几乎总是在编码之前先在解释器中草写我的程序。这不仅适用于那些你不知道如何在编程语言中工作的东西。例如,我永远不记得使用 range 创建 [-2, -1, 0, 1] 的正确参数是什么。但我也不需要记住。我只需要启动解释器,尝试一些东西,直到我弄清楚它是 range(-2, 2)
(实际上我刚刚做了)。
你可以把它当做一个计算器使用。
Python 是一种非常自省的编程语言。如果你想知道关于一个对象的任何信息,你可以使用 dir(object)
。如果你使用 IPython,你甚至可以使用 object.<TAB>
进行自动完成功能,以查看该对象的方法和属性。这比查找文档甚至代码更快。
使用 help(anything)
查看文档。它比任何网络接口都要快。
再次强烈推荐使用 IPython,但你可以计算代码执行时间。 %timeit func1()
和 %timeit func2()
是一个常见的习惯用法,用于确定哪个更快。
你有多少次想要编写一个只使用一次然后再也不用的程序?最快的方法就是在 Python 解释器中完成。当然,你必须小心编写循环或函数(它们必须第一次就具有正确的语法),但大多数东西只是逐行进行,你可以随意尝试。
调试。 在编写代码时,您不需要在代码中放置选择性打印语句来查看变量是什么,只需输入>>> a
即可显示a
是什么。 这也很好地用于检查您是否正确构建了某些内容。 Python调试器pdb还使用解释器功能,因此您不仅可以在调试时查看变量是什么,而且还可以操纵甚至更改它而无需停止调试。
当人们说Python开发速度更快时,我保证这就是他们谈论的重要部分。
评论者:我有遗漏吗?
help()
也可以通过pydoc
命令行使用。而且,ipython
使得Python在交互性方面接近Matlab(至少是Matlab的CLI)。即使你搞砸了一个循环,你也可以光标上移并修复它。有时我甚至会打开一个文本编辑器窗口,在其中编写一些命令,然后将其复制并粘贴到Python解释器中。数组索引出错?修复、复制和再次粘贴即可。无需将文件保存在任何地方。 - Mike DeSimoneimport pprint
对于大型和复杂的字典、列表或其他从 JSON 中获取的结构来说是不可或缺的。 - Kevinpython -i
开关与用于设置测试的任何脚本相结合非常方便。执行完毕后,解释器会回到交互模式,可以在台式仪器上瞎弄时运行不同的测试子集。 - FriendFX#!
) 行:我现在只使用 #!/usr/bin/env python
。它让 env
在用户的 $PATH
中查找 python
。 - Mike DeSimonemath
模块提供)的非常快速的方式。我已经设置好了我的环境,使得每当我启动Python shell时,math模块会自动导入。实际上,这是向非Python爱好者“推销”Python的好方法。向他们展示如何将Python用作一个整洁的科学计算器,并用于简单的数学原型设计。bc
成为一个好用的简单命令行计算器。Python 更好,而且比 Matlab 轻量级得多。 - Mike DeSimone有一件事是我用交互模式做的,其他人没有提到:查看模块是否已安装。只需启动Python并尝试import
模块即可;如果出错,则您的PYTHONPATH已损坏或未安装该模块。
对于"嘿,它在我的计算机上无法运行"或"那个Python安装在哪里"的错误,这是一个很好的第一步。
我发现交互式解释器非常非常适合测试快速代码,或向他人展示Python的强大功能。有时我也将解释器用作方便的计算器。在很短的时间内你可以做出惊人的事情。
除了内置控制台之外,我还要推荐Pyshell。它具有自动完成和良好的语法高亮功能。您还可以同时编辑多行代码。当然,它并不完美,但肯定比默认的Python控制台更好。
交互模式使得在将代码片段加入到更大的程序之前进行测试变得容易。如果您使用IDLE,它会提供语法高亮和参数弹出窗口来帮助您。这也是一种快速检查您是否已经掌握了如何使用模块而无需编写测试程序的方法。