|Python新手小白中级教程|第二十二章:错误处理【incomplete input、invalid syntax、unexpected indent、TypeError、ValueError】

前言

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)。以后一旦再遇到陌生的函数错误,别忘了私信求助!

最后,被忘了一圈三连,点个关注!

  • 26
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值