用户:天上的流星_tianqiVirus查看:1 回复:9 评论:1 创建时间:2019-08-12T09:10:11
python教程
对于程序错误的改法
如果你有什么没看懂的请千万不要看我以前的帖子,因为以前不讲这些
那么请回去学习学习python最基础的东西
先来给大家放一个反面教材
print(HelloUglyWorld)
这个程序错误在哪里呢
不是因为没加引号,而是这个HelloUglyWorld未定义
Traceback (most recent call last):
File "C:/Users/LENOVO/Desktop/1.py", line 1, in <module>
print(HelloUglyWorld)
NameError: name 'HelloUglyWorld' is not defined
由于HelloUglyWorld本来就是连在一起的,被判断成变量名也可以理解
如果他们是分开来的,像Hello 喵 world,那么就是语法错误,而非变量问题
这就是第一点,先搞清楚是为什么报错
接下来讲具体点的
python里有一个叫做try的而且很踹的语句可以帮助我们
在try的字典里,从来就没有坚持二字,试不了就放弃
这个try要和except连用,不然也会报错
而且try报错语句下面的语句将不被运行
他们的用法如下
try:
#语句
except:
#try内的语句报错后运行的语句
就这样
except后不加东西就包括所有报错,如果你想指定是哪个方面报错,类似于是类型错误或语法错误
那么就在except后面加上报错类型,比如说,变量名错误就是
#Bill Gates is a butterfly
try:
print(HelloUglyWorld)
except NameError:
print("Oops,NameError")
然后它就会说Oops,NameError,而不会报错
当然,也可以套两个except,比如说
#Bill Gates is a butterfly
try:
print(HelloUglyWorld)
except NameError:
print("Oops,NameError")
except TypeError:
print("Oops,TypeError")
这也是可以的
然后是我们熟悉的else语句
这个语句是要放在except后,如果没有异常才运行的
#Bill Gates is a butterfly
try:
print(HelloUglyWorld)
except NameError:
print("Oops,NameError")
except TypeError:
print("Oops,TypeError")
else:
print("no error")
一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常,最多只有一个分支会被执行
处理程序将只针对对应的try子句中的异常进行处理,而不是其他的 try 的处理程序中的异常
一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如
#Bill Gates is a butterfly
try:
print(HelloUglyWorld)
except (NameError,TypeError):
print("Oops,Error")
else:
print("no error")
那我总得告诉你异常吧
告诉你的方法就是raise语句
简单点的方法就是直接在except里加上raise,如下
#Bill Gates is a butterfly
try:
print(HelloUglyWorld)
except (NameError,TypeError):
print("Oops,Error")
raise
else:
print("no error")
然后运行结果如下
Oops,Error
Traceback (most recent call last):
File "C:\Users\LENOVO\Desktop\1.py", line 4, in <module>
print(HelloUglyWorld)
NameError: name 'HelloUglyWorld' is not defined
很正规地抛出了异常
但是注意
如果没有异常,它反而会报错
#Bill Gates is a butterfly
try:
print('HelloUglyWorld')
except (NameError,TypeError):
print("Oops,Error")
raise
else:
print("no error")
raise
HelloUglyWorld
no error
Traceback (most recent call last):
File "C:\Users\LENOVO\Desktop\1.py", line 10, in <module>
raise
RuntimeError: No active exception to reraise
Finally,终于到finally语句了
#Bill Gates is a butterfly
try:
print(HelloUglyWorld)
except (NameError,TypeError):
print("Oops,Error")
raise
else:
print("no error")
finally:
exit = input('press enter to leave')
这货不管之前怎样都会运行,里面不止可以加input,也可以加其他的
Oops,Error
press enter to leave
懂了吗
(懂了什么呀)
这样,我们这一次的任务就完成了
想要继续学习pygame和游戏制作的请关注
id:天上的流星
本帖内的所有代码,思想仅供参考,请勿用于商业盈利用途