IDE、IDLE 和 Tcl/Tk
2020年了,Python 自带的 IDLE 还够用么?
什么是 IDE
首先介绍一下什么是 IDE
。
IDE
的全称是 Integrated Development Environment
,集成开发环境。是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件工具(摘自某百科)。
早些年的时候学 C++ 的有微软的 VC6.0,后来升级到 Visual Studio,号称宇宙第一 IDE。学习 Java 的以前都用 Eclipse,后来大家渐渐都觉得 IntelliJ IDEA 更香。
值得一说的是,随着 IDE 的发展,现在它们基本都不再局限支持某一种语言。比如 Visual Studio 现在也可以支持 Python,而大家公认的最好用的 PyCharm 也和 IntelliJ 家族其它 IDE 一脉相承。
什么是 IDLE
IDLE
的全称是: Integrated Development
and Learning Environment
。
无意中看到的:大家都知道
Python
的名字来源于喜剧团体:Monty Python,里面有位成员名字叫 Eric Idle,据说Idle
就是源自于此。看来 Guido 对他们是真爱。如果这个传闻是真的,那么更有意思的是,还有个 IDE 叫 Eric。
![eric idle](images/eric idle.jpg)
比 IDE 还多了学习功能,而且 IDLE 的最开始的作者就是 Python 之父,Guido van Rossum 大神。是不是听上去还不错?
作为 IDE 应该包含的基本功能,IDLE
都具备了:
- 带语法高亮,自动提示的代码编辑器(虽然很弱)
- 可以直接运行代码也可以提供交互操作的解释器
- 提供 Debug 能力,比如单步调试的 Debugger 工具
![IDLE 基本功能](images/IDLE 功能.png)
可以说,作为入门级别的是可以基本胜任的。
用还是不用?
IDLE
最大的优点是 免安装,免配置,安装完 python 后就能用,并且还自动创建了快捷方式和右键菜单
从功能上讲,IDLE
确实很落伍,但是对于 真正的初学者 来说,这反而是优点。
这里的初学者,是指第一次接触到编程,所以也是第一次接触到编程开发工具的人。如果有其它任何语言基础,用过任何一种语言开发工具,都不算了。
为什么我要说 IDLE
的功能少反而是优点?
因为开始学习的时候我们最常用的必须要掌握的功能可能只有很少的几十个,甚至更少。
假设 IDLE
有 100 个功能点吧(每个按钮菜单项都算上,实际可能还没有),其它 IDE 可能有几百上千个功能点。
那么是在前者找到我们必需的那些功能容易,还是后者呢?答案是显而易见的。
就好比现在有个人第一次接触到电脑,字都不会打,那么是不是该从记事本开始,先保证能正常打字后再使用 word 学习字体排版。
什么时候不用 IDLE
作为一个入门级别的工具,IDLE
并不适合用来干活。因为它缺少了很多现代 IDE 应该有的基本功能:
- 项目管理
- 版本控制
- 重构工具
- 远程开发
- 包管理
- 虚拟环境
- …
所以,Python 基础学完之后,差不多就该另觅良器了。
不用 IDLE
用什么?
不用 IDLE
后最大的问题就是该选择哪个软件的问题:
- Notepad++
- VIM
- UliPad
- Eric
- WingIDE
- Spyder
- Sublime Text
- IPython
- Eclipse + PyDev
- Visual Studio
- Atom
- Visual Studio Code
- PyCharm
- Jupyter Notebook
- Anaconda
- …
上面这些工具,是我在学习 Python 之后有所耳闻或使用过的,大致上按照年代感排的序,其中有的非常火热,有的已经鲜有耳闻了。
不同的需求可以有不同的选择:
- 数据分析,科学计算:Jupyter Notebook,Anaconda
- 大中型项目开发: Pycharm
- 小型项目,日常脚本: VSCode
- 经常用交互式解释器: IPython
其实,到底哪个工具最香,还是要自己去试试。
Turtle Demo 时间
IDLE 里面有个不起眼的菜单,Help
-> Turtle Demo
,
![Turtle Demo](images/Turtle Demo.png)
里面有很不错的小例子,比如 汉诺塔,代码很简练,还自带了动画效果,非常棒:
还有这些:
对于编程初学者,特别是青少年,从 Turtle 画图开始学是不错的选择。比较容易培养对编程的兴趣。所以,感兴趣的千万不要错过这些 Demo。
Tkinter
编程最佳参考
先来介绍一下 Tkinter
。
Tkinter
,是 Python 自带的 GUI(图形用户界面)编程库。
Tkinter
,有时候又简称 Tk
,提到它的时候往往和 Tcl
在一起,像这样 Tcl/Tk
。连它们的官网 URL 都是 :https://www.tcl.tk/。
实际上,Tcl
也是一种编程语言,全称是:Tool Command Language
,即 工具命令语言。它也是一门解释性的脚本语言,和 Python 一样。
TCL 的发音像 tickle 一样,念作 “踢叩”
TCL
的功能也很强大,但是它的语法和其它语言差别挺大(我曾经学过一段时间,记忆犹新)。虽然它没有 Python 那么被广为大众所知,但是在某些领域仍然有广泛应用。
一个是交换机的配置系统基本都是使用的 Tcl
,所以在网络自动化测试领域,Tcl
还是首选语言。这其中还有一个工具 expect
非常有名。
另一个比较著名的就是 Tkinter
了。它是 Tcl
语言的扩展,能够提供了跨操作系统的 GUI。因为它应用很广,所以 Python 没有自己实现,就在上面加了一层壳,提供了 Python 版本的 API。把它们作为了 Python 的 GUI 库了。
自从互联网时代开始,桌面编程日渐式微,转而热门的是 Web 开发。更不用提现在已经是移动互联网时代的尾声,所以也没多少人学 GUI 编程了。
但是难免有人会对 Python GUI 编程感兴趣,而网上也找不到很多的资料。那么 IDLE
就是绝好的参考案例。所有的源码就在 <Python安装目录>\Lib\idlelib
中。
小结
IDE 和 IDLE 和 Tcl/Tk 的入门级别解释。
如果本文对你有帮助,请 点赞、分享、关注,谢谢!