上节中,我们编写了第一个程序。如果程序中出现在错误怎么办呢?也许会发生不同类型的错误,下面我们就来认识和了解一下错误,在以后遇到错误之后,你就会知道如何应对。
A.syntax error(语法错误)
Idel在运行程序前会对程序做一些检查。如果Idel发现一个错误,往往是一个syntax error(语法错误)。语法是一种编程语言的拼写和文法规则,所以一般语法错误是指输入的内容不是正确的python代码。例如:
Print “hello,word!”
Print “Thanks!”
Printbye,bye!”
从上面我们就看出来,在print和bye,bye!”之间漏了一个引号。如果我们运行这段代码,Idel会给我们什么提示呢?

弹出的信息框显示的英文意思是告诉我们,程序中有一个错误,语法不正确。你现在要做的就是查看代码。这时你也会注意到Idel中用红色的显示出错误的位置,有可能显示的位置不是我们程序出错的位置,但这个位置也距离真正出错的位置不会太远。这就要我们针对红色标记附近的代码仔细的观察查找错误。语法错误,对我们来说就是检查一下程序代码中输入的代码信息,并将其修改过来就可以了。
B.运行时错误
这种错误是在运行程序前python或者Idel没有检测出来错误。这种错误只能是在运行的时候才会发生,所以被称为runtime error(运行时错误)。例如:
Print “helloworld!”
Print “Canyou help me?”
Print “zhang” + 5
如果上面的代码保存并运行的话,程序会运行前两行的代码,也会提示第三行代码有错误。
Traceback开头的代码行表示的错误消息开始。下一行指哪里发生了错误(会给出文件位置、文件名称以及代码出错的行号),再下一行就是显示的是出错的代码行。这里就很明了显著的帮助你找到代码中哪里出现了问题。错误消息的最后也会告诉你python自己检测反馈存在的什么的问题。对编程和python就会更加的理解深刻了。
这里我想问大家一个问题,大家不知道有没有注意到。第一个程序中我们看到过print“zhang”* 20就可以运行,为什么今天我们的print“zhang”+ 5运行就出现了错误呢?这就好比猫和苹果放在一起。在python中两个完全不通的东西不能放在一起相加,比如说文本和汉字。正是因为这样才会出现print“zhang”+ 5出现错误信息。这段代码就成了文本+数字,没有任何意义,也没有结果。同样也好比1只猫加上1个苹果等什么。这根本就没有实际意义,如果是等于2,那是2个什么呢。所以print“zhang”+ 5没有意义,程序就运行不了。不过任何东西都是可以成一个数翻倍。如1只猫,乘以2,就是2只猫。所以说print“zhang”* 20是可以运行的。
由于上节我们写的第一个程序没什么多大的意义,只是单纯的整理了几个全是用来打印的代码。今天我们来写一个有意思的第二个程序。
第二个程序我们编写一个简单的猜字游戏。与第一个程序一样,我们先【File】(文件)--【New file】(新建文件),我将代码输入进去,保存一下就可以了。
附代码:
#-*- coding: utf-8 -*-
import random
secret = random.randint(1,100)
guess= 0
tries= 0
print "你好!我是一款猜数字游戏,快来猜一猜吧!"
print "它是数字从1到100.你有6次机会"
while guess != secret and tries < 6:
guess = input("你的猜测是多少?")
if guess < secret:
print "小啦!增大一点。"
elif guess > secret:
print "大啦!减小一点。"
tries = tries + 1
ifguess == secret:
print "哇哦!太聪明了,你竟然猜对了!"
else:
print "真遗憾,你没有机会了。请下次再来吧!"
print "这个数是:",secret
输入这些代码时候,注意一下while指令后面是自动缩进的,另外if和elif后面的代码也是自动缩进。还有就是在这些后面要带有的是冒号“:”,这才会在后面自动缩进。
【Save】(保存)--【Run】(运行)--【Run Module】(运行模块)。

我第一次猜了6次都没有猜中,最后发现差一点就猜中了。第二次的时候我猜了3次就猜中了。还有我现在要说的是,现在我们不用太重视while、if、elif、else和input这些关键词,在以后我们会深入的学习这些关键词,现在你需要了解的是这个程序的基本过程。
关于游戏,这个程序是选取的随机数。用户可以直接参与其中,输入数字。根据输入的数字对比太大还是太小。用户可以输入6次,6次都没猜中就会结束游戏。猜到的数字和秘密数一样的时候,就是获胜结束游戏。
好啦,今天的课程就学到这里。快按照上面的代码练习练习吧,有不会的或者不懂的,可以在屏幕的下方【留言区】给我留言。
张S金编于2017.11.26 23:25
网友评论