循序渐进学Python:IDLE的运行、编辑与调试

软件和网站开发以及相关技术探讨
头像
酷乐
帖子: 69
注册时间: 2008-04-06 11:19
来自: 太原科技大学

循序渐进学Python:IDLE的运行、编辑与调试

#1

帖子 酷乐 » 2009-10-04 12:39

IDLE是Python软件包自带的一个集成开发环境,初学者可以利用它方便地创建、运行、测试和调试Python程序。本文将详细介绍IDLE的GUI界面、Python Shell、编辑器和调试器,为初学者快速上手助一臂之力。

一、IDLE的安装
实际上,IDLE是跟Python一起安装的,不过要确保出现图1所示的安装画面时选中了“Tcl/Tk”组件,准确地说,应该是不要取消该组件,因为默认时该组件是处于选中状态的。

图片
二、IDLE的启动
安装Python后,我们可以从“开始”菜单→“所有程序”→“Python 2.5”→“IDLE(Python GUI)”来启动IDLE。IDLE启动后的初始窗口下图所示:
图片
如上图所示,启动IDLE后首先映入我们眼帘的它的Python shell,我们通过它可以在IDLE内部执行Python命令。除此之外,IDLE还带有一个编辑器,用来编辑Python程序(或者脚本);有一个交互式解释器用来解释执行Python语句;有一个调试器来调试Python脚本。下面我们从IDLE的编辑器开始介绍。
头像
酷乐
帖子: 69
注册时间: 2008-04-06 11:19
来自: 太原科技大学

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#2

帖子 酷乐 » 2009-10-04 12:43

三、利用IDLE创建Python程序
IDLE为开发人员提供了许多有用的特性,如自动缩进、语法高亮显示、单词自动完成以及命令历史等等,在这些功能的帮助下,能够有效的提高我们的开发效率。下面我们通过一个实例来对这些特性分别加以介绍。我们的示例程序的源代码如下所示:

#提示用户进行输入
integer1 = raw_input('请输入一个整数:')
integer1 = int(integer1)
integer2 = raw_input('请再次输入一个整数:')
integer2 = int(integer2)

if integer1 < integer2:
print '%d < %d' %(integer1, integer2)
else:
print '%d ≥ %d' %(integer1, integer2)

我们现在演示如何利用IDLE的编辑器来创建Python程序。要新建一个文件,首先从“File”菜单中选择“New Window”菜单项,这样就可以在出现的窗口中输入程序的代码了。现在就让我们输入上面的代码来亲自体验一下IDLE所提供的各种便利吧。

我们首先介绍自动缩进。实际上,很少有哪种语言能像Python这样重视缩进了,在其他语言比如C语言,缩进对于代码的编写来说是“有了更好”,而不是“没有不行”,它充其量是一个个人书写代码的风格问题;但是到了Python语言这里,则把缩进提升到了一个语法的高度。复合语句不是用大括号{}之类的符号表示,而是通过缩进来表示。这样做的好处就是减少了程序员的自由度,有利于统一风格,使得人们在阅读代码时会更加轻松。为此,IDLE提供了自动缩进功能,它能将光标定位到下一行的指定空距处。当我们键入与控制结构对应的关键,如if等,或者输入如def等与函数定义对应的关键字的时候,按下回车键后IDLE就会启动自动缩进功能。如下图所示:
图片

就像图3所示,当我们在if关键字所在行的冒号后面按回车键之后,IDLE自动进行了缩进。一般情况下,IDLE将代码缩进一级,即4个空格。如果想改变这个默认的缩进量的话,可以从“Format”菜单选择“New indent width”项来进行修改。对初学者来说,需要注意的是尽管自动缩进功能非常方便,但是我们不能完全依赖它,因为有时候自动缩进未必完全合我们的心意,所以还需要仔细检查一下。

所谓语法高亮显示,就是给代码不同的元素使用不同的颜色进行显示,关于这一点,我们从图3中已经看到了。默认时,关键字显示为桔红色,注释显示为红色,字符串为绿色,定义和解释器的输出显示为蓝色,控制台输出显示为棕色。在键入代码时,会自动应用这些颜色突出显示。语法高亮显示的好处是,可以更容易区分不同的语法元素,从而提高可读性;与此同时,语法高亮显示还降低了出错的可能性。比如,如果输入的变量名显示为桔红色,那么您就需要注意了,这说明该名称与预留的关键字冲突,所以必须给变量更换名称。

单词自动完成指的是,当用户输入单词的一部分后,从“Edit”菜单选择“Expand word”项,或者直接按Alt+/组合键自动完成该单词。如下图:

图片
现在我们输入字符“i”之后按下组合键Alt+/,IDLE将自动完成该单词,结果如下图所示:
图片
此外,有时候我们只记住了函数的开头几个字母,这时怎么办?比如我想在程序运行时用raw_input函数从标准输入设备键入一些内容,本来这个函数名我是记住了的,但由于肚子太饿输入raw这三个字母后,下面的几个字母却怎么也想不起来了,没关系,从“Edit”菜单选择“Show completetions”菜单项,IDLE就会给出一些提示,如图所示:
图片
现在只要按下回车键,IDLE就会自动完成此函数名。如果不合适的话,还可以向上、向下方向键进行查找。
创建好程序之后,从“File”菜单中选择“Save”保存程序。如果是新文件,会弹出“Save as”对话框,我们可以在该对话框中指定文件名和保存位置。保存后,文件名会自动显示在屏幕顶部的蓝色标题栏中。如果文件中存在尚未存盘的内容,标题栏的文件名前后会有星号出现。
头像
酷乐
帖子: 69
注册时间: 2008-04-06 11:19
来自: 太原科技大学

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#3

帖子 酷乐 » 2009-10-04 12:46

四、常用编辑功能详解
现在我们将介绍编写Python程序时常用的IDLE选项,下面按照不同的菜单分别列出,供初学者参考。对于“Edit”菜单,除了上面介绍的几个选项之外,常用的选项及解释如下所示:
Undo:撤销上一次的修改。
Redo:重复上一次的修改。
 Cut:将所选文本剪切至剪贴板。
Copy:将所选文本复制到剪贴板。
Paste:将剪贴板的文本粘帖到光标所在位置。
 Find:在窗口中查找单词或模式。
Find in files:在指定的文件中查找单词或模式
 Replace:替换单词或模式。
 Go to line:将光标定位到指定行首。
对于“Format”菜单,常用的选项及解释如下所示:
Indent region:使所选内容右移一级,即增加缩进量。
 Dedent region:使所选内容组左移一级,即减少缩进量。
 Comment out region:将所选内容变成注释。
 Uncomment region:去除所选内容每行前面的注释符。
 New indent width:重新设定制表位缩进宽度,范围2~16,宽度为2相当于1个空格。
 Expand word:单词自动完成。 Toggle tabs:打开或关闭制表位。

五、在IDLE中运行Python程序
要使用IDLE执行程序的话,可以从“Run”菜单中选择“Run Module”菜单项,该菜单项的功能是执行当前文件。对于我们的示例程序,执行情况如下图所示:
图片

六、使用IDLE的调试器
软件开发过程中,总免不了这样或那样的错误,其中有语法方面的,也有逻辑方面的。对于语法错误,Python解释器能很容易的检测出来,这时它会停止程序的运行并给出错误提示。对于逻辑错误,解释器就鞭长莫及了,这时程序会一直执行下去,但是得到的运行结果却是错误的。所以,我们常常需要对程序进行调试。

最简单的调试方法是直接显示程序数据,例如可以在某些关键位置用print语句显示出变量的值,从而确定有没有出错。但是这个办法比较麻烦,因为开发人员必须在所有可疑的地方都插入打印语句。等到程序调试完后,还必须将这些打印语句全部清除,这真是太罗嗦了。

除此之外,我们还可以使用调试器来进行调试。利用调试器,我们可以分析被调试程序的数据,并监视程序的执行流程。调试器的功能包括暂停程序执行、检查和修改变量、调用方法而不更改程序代码等等。IDLE也提供了一个调试器,帮助开发人员来查找逻辑错误。

下面简单介绍IDLE的调试器的使用方法。在“Python Shell”窗口中单击“Debug”菜单中的“Debugger”菜单项,就可以启动IDLE的交互式调试器。这时,IDLE会打开“Debug Control”窗口,并在“Python Shell”窗口中输出“[DEBUG ON]”并后跟一个“>>>”提示符。这样,我们就能像平时那样使用这个“Python Shell”窗口了,只不过现在输入的任何命令都是允许在调试器下。我们可以在“Debug Control”窗口查看局部变量和全局变量等有关内容。如果要退出调试器的话,可以再次单击“Debug”菜单中的“Debugger”菜单项,IDLE会关闭“Debug Control”窗口,并在“Python Shell”窗口中输出“[DEBUG OFF]”。

七、IDLE的命令历史功能
命令历史可以记录会话期间在命令行中执行过的所有命令。在提示符下,可以按Alt+P组合键找回这些命令,每按一次,IDLE就会从最近的命令开始检索命令历史,按命令使用的顺序逐个显示。按Alt+N组合键,则可以反方向遍历各个命令,即从最初的命令开始遍历。

八、小结
IDLE是Python软件包自带的一个集成开发环境,非常适合于Python编程的初学者。本文通过一个示例程序详细介绍了IDLE在程序开发过程中的使用方法,希望能对大家学习Python编程有所帮助。
头像
davoola
帖子: 136
注册时间: 2007-08-24 20:49

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#4

帖子 davoola » 2009-10-06 0:13

嘿嘿,有点类似交换机调试
寵辱不驚,閑看庭前花開花落;
去留無意,漫隨天外雲卷雲舒。
fjiang2001
帖子: 1
注册时间: 2009-10-08 23:02

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#5

帖子 fjiang2001 » 2009-10-08 23:49

感谢感谢。
超级新手PT
帖子: 4
注册时间: 2009-10-20 15:38

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#6

帖子 超级新手PT » 2009-10-20 15:41

LZ。。。。。。。。。我照你的代码照写了一下。。。。怎么执行不了程序呢??????????
超级新手PT
帖子: 4
注册时间: 2009-10-20 15:38

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#7

帖子 超级新手PT » 2009-10-20 16:05

喔。。。。。。改了N次。。。。。终于让我弄得出来了啊。。。。。。。。。

谢谢LZ的教程啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :em06
超级新手PT
帖子: 4
注册时间: 2009-10-20 15:38

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#8

帖子 超级新手PT » 2009-10-20 16:08

原来有些地方多了一个空格。。。。。。。程序就会执行不了啊。。。。。。。。。。

LZ的教程让我终于学习了第一个程序啊!!!!!!!!!!!!!! :em02
超级新手PT
帖子: 4
注册时间: 2009-10-20 15:38

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#9

帖子 超级新手PT » 2009-10-20 16:20

原来有些地方多了一个空格。。。。。。。程序就会执行不了啊。。。。。。。。。。

LZ的教程让我终于学习了第一个程序啊!!!!!!!!!!!!!! :em02
丘术LEON
帖子: 1
注册时间: 2010-04-05 22:12

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#10

帖子 丘术LEON » 2010-04-05 22:43

想问下,如何在python shell下直接运行*.py的文件啊,才cmd下可以直接运行,但是在python 自带的command shell 下怎么直接运行*.py,才刚刚开始学,用的有是3 .1.2版本,不知道因该如何办,朋友帮帮忙,先谢谢了
头像
jmw778s
帖子: 994
注册时间: 2009-10-16 11:13
来自: 福安
联系:

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#12

帖子 jmw778s » 2010-04-20 12:33

丘术LEON 写了:想问下,如何在python shell下直接运行*.py的文件啊,才cmd下可以直接运行,但是在python 自带的command shell 下怎么直接运行*.py,才刚刚开始学,用的有是3 .1.2版本,不知道因该如何办,朋友帮帮忙,先谢谢了

代码: 全选

python *.py
Acer 4738ZG-P22G50Mnkk 笔记本电脑
我用Windows 7 来这里装13的
头像
wlzyan
帖子: 504
注册时间: 2008-08-16 15:09
来自: 没有海一样的胸怀,哪能有海一样的事业.

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#13

帖子 wlzyan » 2010-05-14 11:46

:em11 学习了.
只有零售才能产生利润,其它都是成本.
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#14

帖子 trigger » 2010-05-18 17:44

:em20
这东西也行?还是pydev吧
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 循序渐进学Python:IDLE的运行、编辑与调试

#15

帖子 tenzu » 2010-05-18 18:43

3L有乱码
回复