如下python语句,错误的是,python出现语法错误

  如下python语句,错误的是,python出现语法错误

  回顾

  在Python高级记录的基础章节(20)中,我们介绍了Python面向对象系统中的类方法和静态方法,以及类中具有特殊功能的魔函数。需要掌握类方法和静态方法的概念和基本用法,了解魔函数的作用。Bing Nv擅长使用常用的魔法函数自定义类。今天我们来谈谈Python中的语法错误和异常以及异常的处理。

  语法错误

  刚开始学Python的时候,因为不熟悉,经常会犯一些语法错误。

  语法错误

  Python中的语法错误,也称为解析错误,初学者很容易遇到。好消息是Python parser运行后可以准确的指出错误的行,并在第一个发现错误的位置标注一个小箭头,这样我们就可以快速定位语法错误。

  在上面的代码中,if条件语句后缺少一个冒号。当我们运行后看到错误,就能意识到错误在哪里,从而纠正这个语法错误。

  反常的

  有时候,虽然我们的Python程序没有语法错误,但是当我们运行它的时候,会发现程序也可能报错。在这种情况下,通常是程序出现异常。

  程序异常

  在上面的代码中,从语法的角度来看,程序没有问题。但是,正如您所看到的,操作仍然报告了一个错误,因为我们将0作为除数,这导致Python抛出了一个ZeroDivisionError异常。像这样在运行时检测到的错误被称为异常。

  让我们看另一个例子。我们知道Python中不允许字符串类型和数字类型操作。现在我们尝试将字符串2和整数2相加。

  程序异常

  不出所料,Python再次抛出异常,异常错误为TypeError。事实上,与大多数编程语言类似,Python有各种类型的异常。比如我们例子中的ZeroDivisionError和TypeError就是两个常见的异常,而且大部分异常都不是程序直接处理的,而是以错误消息的形式呈现在运行结果中,会终止程序的运行。

  异常处理

  不像语法错误,我们可以捕捉异常。当程序中出现异常时,我们捕获异常,并让程序暂停当前执行的代码,跳转到错误处理代码。处理完成后,程序将继续运行,从而避免程序因异常而终止。

  在Python中,异常由“try”处理.除.之外.最后……”语句块,基本格式如下:

  尝试:

  可能异常的代码。

  除了:

  处理异常的代码

  最后(可省略):

  无论异常是否发生都将执行的代码。

  现在,我们通过捕捉异常来处理之前有异常的两个程序。

  异常的简单处理

  在上面的代码中,我们成功地修复了之前报告错误的两个程序,分别捕获了异常ZeroDivisionError和TypeError。

  让我们总结一下“尝试”的执行情况.除.之外.最后……”语句块:

  1.执行try中的子句。

  2.如果没有异常发生,则跳过except子句,直接执行后续代码。

  3.如果在try子句的执行过程中出现异常,则try子句中出现异常代码的那一行开始,其余代码将不会执行。如果异常的类型与异常名匹配,将执行相应的except子句,然后执行后续代码。

  4.如果异常不匹配任何except,那么这个异常将被抛出,程序将被终止。

  try语句可以包含多个except子句来处理不同类型的异常,但最多只会执行一个分支。

  一次尝试多个except子句

  在上面的代码中,我们捕获了两个异常,ZeroDivisionError和TypeError,这样程序就可以同时处理0是除数或者类型错误的情况。

  对于多异常处理,也可以用元组的形式编写。

  except (ZeroDivisionError,TypeError):

  及格

  但是如果要这样处理不同的异常,就需要判断except子句中的异常类型,然后进行相应的处理。

  在程序执行的过程中,我们有时会遇到一些意想不到的异常,或者我们不知道异常的名称。因此,我们通常会忽略try语句最后一个except子句中的异常名称,并将其用作通配符。

  例外通配符除外

  再说,“试试.除.之外.最后……”语句块还有一个可选的else子句,它与finally子句不同,只有在try子句中没有异常时才会执行。

  Else子句

  在上面的代码中,第一个“尝试.除.之外.最后……”语句块有一个异常,else子句将不被采用,而第二个“try.除.之外.最后……”语句块没有异常,所以将采用else子句。

  摘要

  以上内容介绍了Python中的语法错误和异常以及异常的处理方法。有必要掌握语法错误和异常的基本概念,并熟练地使用“尝试”.除.之外.最后……”语句块来处理异常。感谢大家的支持和关注,欢迎大家一起学习交流~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: