爸爸教我学Python编程-第4课-出现问题怎么办?-少儿编程教育网

如果程序中出现错误无法行动,怎么办呢?可能会发生两种不同类型的错误。下面就来了解这两种错误,这样无论遇到哪一种错误你都能知道如何应对。

1、语法错误

IDLE在尝试运行程序前会对程序做一些检查。如果IDLE发现一个错误,这往往是一个语法错误(syntax error)。语法就是一种编程语言的拼写和文法规则,所以出现语法错误意味着你键入的某个内容不是正确的Python代码。

下面给出一个例子:

爸爸教我学Python编程-第4课-出现问题怎么办?-少儿编程教育网

这里在print和 Bye for now!之间漏了一个引号。

如果运行这个程序,IDLE会弹出一个消息“Thert`s an error in your program: invaldi syntax ”意思是说你的程序中有一个错误,语法不正确。你必须查看代码,找出哪里出了问题。IDLE会(用红色)突出显示它认为出错的位置。也许问题不会恰好出现在红色显示的位置,不过应该很接近。

2、运行时错误

可能发生的第二种错误是运行程序之前Python(或IDLE)无法检测出来的错误。这种错误只是在程序运行时才会发生,所以被称为行动时错误(runtime error ).下面是程序中出现运行时错误的例子:

爸爸教我学Python编程-第4课-出现问题怎么办?-少儿编程教育网

如果保存这个程序,并试图运行,程序确实会开始运行,前两行会打印出来,但是接下来我们会得到一个错误消息:

爸爸教我学Python编程-第4课-出现问题怎么办?-少儿编程教育网

Traceback开头的代码行表示错误消息开始。下一行指出哪里发生了错误,这里会给出文件名和行号。然后显示出错的代码行,这可以帮助你找到代码中哪里出了问题,错误消息的最后一部分会告诉你Python认为存在什么问题。对编程和Python有了更多了解之后,就更容易理解这个消息是什么意思了。

爸爸教我学Python编程-第4课-出现问题怎么办?-少儿编程教育网

听我说,Carter,这有点像苹果和鳄鱼放在一起。在Python中,不能把两个完全不同的东西加在一起,比如说数字和文本。正是因为这个原在,print "Bye for now!"+5会给出错误消息。这就像是在说:“5个苹果加3只鳄鱼是多少?”结果是8,但8个什么呢?把这些东西加在一起没有任何意义。不过几乎所有东西都可以乘以一个数来翻领。(如果有两只鳄鱼,再乘以5,那你就会有10只鳄鱼!)正因如此,print "Bye for now!"+5是可以的。

像程序员一样思考

看到错误消息也不用担心。它们知识为了帮助你找出哪里出了问题,以便你改正错误。如果程序中缺失出了问题,你肯定更希望看到错误消息。没有给出任何错误消息的Bug才更难找出!