文章目录
前言
hello,大家好!我是BoBo仔吖,欢迎来阅读我的文章!
从今天开始,我们要正式进入我们的中级教程啦!今天的第一节课,我们要先处理一个编程中极为令人的内容——错误处理。快来看看今天的内容吧!
一、语法错误(SyntaxError:……)
这个想必是诸位的噩梦了:正开开心心地编程呢,突然……
还有:
更还有:
救命啊,这些错误该怎么解决?!
首先,我们来看一种比较常见的语法错误。
1.提示性质语法错误
什么是提示性质?
这就是一个非常常见的语法错误,不过这里我们暂时把NameError命名错误看错语法错误。在这里,我们会看到:后面,聪明的Python送给你一句话:
Did you mean: 'print'?
这句话是真的很善良,因为它叫你怎么改了。
这里,结合上面的东西,会发现:这里是print拼错了,Python叫我们如何纠正。
所以,我们按照它的提示,把打错的东西改成它的提示词即可。
但是,接下来的内容就有点令人头疼了:
2.incomplete input语法错误
这个内容就有点恶心了。首先,我们先翻译一下这个短语的意思——输入不完整。
下面这段代码就非常常见。
非常明显,这里的True后面少了个冒号,所以造成了输入不完整。
所以,大家只要记住:如果是需要有缩进的东西,一般都有冒号。一旦冒号没了,那就是输入不完整。
还有下面几种情况会导致incomplete input
接下来的语法错误,大家可能就更加懵逼了。
3.SyntaxError: invalid syntax 语法无效错误
这个是最令人崩溃的,既没有缩进错误unexpected indent,又没有命名错误NameError,就扔给你一段话,啥也不说。
这时候,我们要看看语句的语法结构是否有误。
比如下面这个例子:
这就是一个典型的invalid syntax。
我们都知道,for循环必须有一个in关键字,而此时的for循环缺了in,所以程序懵逼了,直接告诉你“无原因”的语法错误。
接下来,我们来观察一下下面程序所含有的错误。
练习1
1.1综合判断
我们来判断一下下面的内容有什么错误。
首先是这个:
i = 12
if i <= 10
print('1')
else
print('2')
很明显,这里的if和else后面缺了冒号,所以Python直接送给我们incomplete syntax。
第二个
此时,我们看到了一个我们后面会讲的一个错误:输入类型错误TypeError。此时,这里提示了一个
TypeError: 'tuple' object is not callable
它的意思是’tuple’对象不可调用,大白话,根本没有num这个功能函数
所以,我们在编程的时候如果没有按照自己的意愿体现语法高亮,那么多半有函数类型错误。
接下来,我们就来看看一个比较令人捉摸不透的东西。
二、缩进错误unexpected indent以及类型错误TypeError、异常ValueError
1.缩进错误unexpected indent
这个错误非常恶心,专门克制那些粗心大意的程序员。
下面这个是最简单的例子
这里我们造成了缩进错误,所以大家要记住:一旦出现缩进,一定是要缩进0、4、8、12……个空格,否则缩进错误直接到家。
2.类型错误TypeError
我们先来看一个简单的例子。
这里就是我们当初见到的typeerror。这里我们来分析一下是什么意思。
这个冒号后面的一大坨意思是:并非所有参数在字符串格式化期间都转换
换句话说,我们在nput的时候输入的任何字符不在类型改变时都是字符串类型str()。总所周知,只有是int整形或者float浮点型才可以进行数字运算。这里我们天真地把字符型做了数字运算,所以导致了类型错误。
改法很简单,我们把input的类型强行改成int就可以啦。
对了,添加int的时候千千万万要记住:**int放在input外面!**否则,会导致下面这种错误:ValueError
这就是输入值异常。
3.输入值异常ValueError
这个东西非常令人摸不着头脑:怎么跳出一堆乱七八糟的,我见都没见过?
大家在学习IPO程序时有没有遇到过这种错误?
ValueError:invalid literal for int() with base 10: ‘Enter a number:’
这就是典型的异常。这里我们因为放错了int,所以强行改动input的行为造成了异常。
解决方法很简单,我们直接把int放在input外面才行。
所以,大家以后遇到它不要怕,只要记住吧int调换一下即可。
总结
今天的内容不多,不过可以作为大家的“抗毒手册”。今天讲的这几种错误(incomplete input、invalid syntax、unexpected indent、TypeError、ValueError)。以后一旦再遇到陌生的函数错误,别忘了私信求助!
最后,被忘了一圈三连,点个关注!