当前位置: 首页 > news >正文

温州新公司做网站做电影网站哪个服务器好

温州新公司做网站,做电影网站哪个服务器好,深圳市龙岗区网站建设,江西省最新新闻Python3 错误和异常 作为 Python 初学者#xff0c;在刚学习 Python 编程时#xff0c;经常会看到一些报错信息#xff0c;在前面我们没有提及#xff0c;这章节我们会专门介绍。 Python 有两种错误很容易辨认#xff1a;语法错误和异常。 Python assert#xff08;断…Python3 错误和异常 作为 Python 初学者在刚学习 Python 编程时经常会看到一些报错信息在前面我们没有提及这章节我们会专门介绍。 Python 有两种错误很容易辨认语法错误和异常。 Python assert断言用于判断一个表达式在表达式条件为 false 的时候触发异常。 语法错误 Python 的语法错误或者称之为解析错是初学者经常碰到的如下实例 while True print(Hello world)File stdin, line 1, in ?while True print(Hello world)^ SyntaxError: invalid syntax这个例子中函数 print() 被检查到有错误是它前面缺少了一个冒号 : 。 语法分析器指出了出错的一行并且在最先找到的错误的位置标记了一个小小的箭头。 异常 即便 Python 程序的语法是正确的在运行它的时候也有可能发生错误。运行期检测到的错误被称为异常。 大多数的异常都不会被程序处理都以错误信息的形式展现在这里: 10 * (1/0) # 0 不能作为除数触发异常 Traceback (most recent call last):File stdin, line 1, in ? ZeroDivisionError: division by zero4 spam*3 # spam 未定义触发异常 Traceback (most recent call last):File stdin, line 1, in ? NameError: name spam is not defined2 2 # int 不能与 str 相加触发异常 Traceback (most recent call last):File stdin, line 1, in module TypeError: can only concatenate str (not int) to str异常以不同的类型出现这些类型都作为信息的一部分打印出来: 例子中的类型有 ZeroDivisionErrorNameError 和 TypeError。 错误信息的前面部分显示了异常发生的上下文并以调用栈的形式显示具体信息。 异常处理 try/except 异常捕捉可以使用 try/except 语句。 以下例子中让用户输入一个合法的整数但是允许用户中断这个程序使用 Control-C 或者操作系统提供的方法。用户中断的信息会引发一个 KeyboardInterrupt 异常。 while True:try:x int(input(请输入一个数字: ))breakexcept ValueError:print(您输入的不是数字请再次尝试输入)try 语句按照如下方式工作 首先执行 try 子句在关键字 try 和关键字 except 之间的语句。如果没有异常发生忽略 except 子句try 子句执行后结束。如果在执行 try 子句的过程中发生了异常那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符那么对应的 except 子句将被执行。如果一个异常没有与任何的 except 匹配那么这个异常将会传递给上层的 try 中。 一个 try 语句可能包含多个except子句分别来处理不同的特定的异常。最多只有一个分支会被执行。 处理程序将只针对对应的 try 子句中的异常进行处理而不是其他的 try 的处理程序中的异常。 一个except子句可以同时处理多个异常这些异常将被放在一个括号里成为一个元组例如: except (RuntimeError, TypeError, NameError):pass最后一个except子句可以忽略异常的名称它将被当作通配符使用。你可以使用这种方法打印一个错误信息然后再次把异常抛出。 import systry:f open(myfile.txt)s f.readline()i int(s.strip()) except OSError as err:print(OS error: {0}.format(err)) except ValueError:print(Could not convert data to an integer.) except:print(Unexpected error:, sys.exc_info()[0])raisetry/except…else try/except 语句还有一个可选的 else 子句如果使用这个子句那么必须放在所有的 except 子句之后。 else 子句将在 try 子句没有发生任何异常的时候执行。 以下实例在 try 语句中判断文件是否可以打开如果打开文件时正常的没有发生异常则执行 else 部分的语句读取文件内容 for arg in sys.argv[1:]:try:f open(arg, r)except IOError:print(cannot open, arg)else:print(arg, has, len(f.readlines()), lines)f.close()使用 else 子句比把所有的语句都放在 try 子句里面要好这样可以避免一些意想不到而 except 又无法捕获的异常。 异常处理并不仅仅处理那些直接发生在 try 子句中的异常而且还能处理子句中调用的函数甚至间接调用的函数里抛出的异常。例如: def this_fails():x 1/0 try:this_fails()except ZeroDivisionError as err:print(Handling run-time error:, err)Handling run-time error: int division or modulo by zerotry-finally 语句 try-finally 语句无论是否发生异常都将执行最后的代码。 以下实例中 finally 语句无论异常是否发生都会执行 try:runoob() except AssertionError as error:print(error) else:try:with open(file.log) as file:read_data file.read()except FileNotFoundError as fnf_error:print(fnf_error) finally:print(这句话无论异常是否发生都会执行。)抛出异常 Python 使用 raise 语句抛出一个指定的异常。 raise语法格式如下 raise [Exception [, args [, traceback]]]以下实例如果 x 大于 5 就触发异常: x 10 if x 5:raise Exception(x 不能大于 5。x 的值为: {}.format(x))执行以上代码会触发异常 Traceback (most recent call last):File C:\Users\Lenovo\Desktop\test.py, line 3, in moduleraise Exception(x 不能大于 5。x 的值为: {}.format(x)) Exception: x 不能大于 5。x 的值为: 10raise 唯一的一个参数指定了要被抛出的异常。它必须是一个异常的实例或者是异常的类也就是 Exception 的子类。 如果你只想知道这是否抛出了一个异常并不想去处理它那么一个简单的 raise 语句就可以再次把它抛出。 try:raise NameError(HiThere) # 模拟一个异常。except NameError:print(An exception flew by!)raiseAn exception flew by! Traceback (most recent call last):File stdin, line 2, in ? NameError: HiThere用户自定义异常 你可以通过创建一个新的异常类来拥有自己的异常。异常类继承自 Exception 类可以直接继承或者间接继承例如: class MyError(Exception):def __init__(self, value):self.value valuedef __str__(self):return repr(self.value) try:raise MyError(2*2)except MyError as e:print(My exception occurred, value:, e.value)My exception occurred, value: 4raise MyError(oops!) Traceback (most recent call last):File stdin, line 1, in ? __main__.MyError: oops!在这个例子中类 Exception 默认的 _init_() 被覆盖。 当创建一个模块有可能抛出多种不同的异常时一种通常的做法是为这个包建立一个基础异常类然后基于这个基础类为不同的错误情况创建不同的子类: class Error(Exception):Base class for exceptions in this module.passclass InputError(Error):Exception raised for errors in the input.Attributes:expression -- input expression in which the error occurredmessage -- explanation of the errordef __init__(self, expression, message):self.expression expressionself.message messageclass TransitionError(Error):Raised when an operation attempts a state transition thats notallowed.Attributes:previous -- state at beginning of transitionnext -- attempted new statemessage -- explanation of why the specific transition is not alloweddef __init__(self, previous, next, message):self.previous previousself.next nextself.message message大多数的异常的名字都以Error结尾就跟标准的异常命名一样。 定义清理行为 try 语句还有另外一个可选的子句它定义了无论在任何情况下都会执行的清理行为。 例如: try: ... raise KeyboardInterrupt ... finally: ... print(Goodbye, world!) ... Goodbye, world! Traceback (most recent call last):File stdin, line 2, in module KeyboardInterrupt以上例子不管 try 子句里面有没有发生异常finally 子句都会执行。 如果一个异常在 try 子句里或者在 except 和 else 子句里被抛出而又没有任何的 except 把它截住那么这个异常会在 finally 子句执行后被抛出。 下面是一个更加复杂的例子在同一个 try 语句里包含 except 和 finally 子句: def divide(x, y):try:result x / yexcept ZeroDivisionError:print(division by zero!)else:print(result is, result)finally:print(executing finally clause) divide(2, 1) result is 2.0 executing finally clausedivide(2, 0) division by zero! executing finally clausedivide(2, 1) executing finally clause Traceback (most recent call last):File stdin, line 1, in ?File stdin, line 3, in divide TypeError: unsupported operand type(s) for /: str and str预定义的清理行为 一些对象定义了标准的清理行为无论系统是否成功的使用了它一旦不需要它了那么这个标准的清理行为就会执行。 下面这个例子展示了尝试打开一个文件然后把内容打印到屏幕上: for line in open(myfile.txt):print(line, end)以上这段代码的问题是当执行完毕后文件会保持打开状态并没有被关闭。 关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行他的清理方法: with open(myfile.txt) as f:for line in f:print(line, end)以上这段代码执行完毕后就算在处理过程中出问题了文件 f 总是会关闭。 with 关键字 Python 中的 with 语句用于异常处理封装了 try…except…finally 编码范式提高了易用性。 with 语句使代码更清晰、更具可读性 它简化了文件流等公共资源的管理。 在处理文件对象时使用 with 关键字是一种很好的做法。 我们可以看下以下几种代码实例 不使用 with也不使用 try…except…finally file open(./test.txt, w) file.write(hello world !) file.close()以上代码如果在调用 write 的过程中出现了异常则 close 方法将无法被执行因此资源就会一直被该程序占用而无法被释放。 接下来我们呢可以使用 try…except…finally 来改进代码 file open(./test.txt, w) try:file.write(hello world) finally:file.close()以上代码我们对可能发生异常的代码处进行 try 捕获发生异常时执行 except 代码块finally 代码块是无论什么情况都会执行所以文件会被关闭不会因为执行异常而占用资源。 使用 with 关键字 with open(./test.txt, w) as file:file.write(hello world !)使用 with 关键字系统会自动调用 f.close() 方法 with 的作用等效于 try/finally 语句是一样的。 我们可以在执行 with 关键字后检验文件是否关闭 with open(./test.txt) as f: ... read_data f.read() # 查看文件是否关闭f.closed Truewith 语句实现原理建立在上下文管理器之上。 上下文管理器是一个实现 _enter_ 和 _exit_ 方法的类。 使用 with 语句确保在嵌套块的末尾调用 _exit_ 方法。 这个概念类似于 try…finally 块的使用。 with open(./test.txt, w) as my_file:my_file.write(hello world!)以上实例将 hello world! 写到 ./test.txt 文件上。 在文件对象中定义了 _enter_ 和 _exit_ 方法即文件对象也实现了上下文管理器首先调用 _enter_ 方法然后执行 with 语句中的代码最后调用 _exit_ 方法。 即使出现错误也会调用 _exit_ 方法也就是会关闭文件流。 assert断言 Python assert断言用于判断一个表达式在表达式条件为 false 的时候触发异常。 断言可以在条件不满足程序运行的情况下直接返回错误而不必等待程序运行后出现崩溃的情况例如我们的代码只能在 Linux 系统下运行可以先判断当前系统是否符合条件。 语法格式如下 assert expression等价于 if not expression:raise AssertionErrorassert 后面也可以紧跟参数: assert expression, [arguments]等价于 if not expression:raise AssertionError(arguments)以下为 assert 使用实例 assert True # 条件为 true 正常执行assert False # 条件为 false 触发异常 Traceback (most recent call last):File stdin, line 1, in module AssertionErrorassert 11 # 条件为 true 正常执行assert 12 # 条件为 false 触发异常 Traceback (most recent call last):File stdin, line 1, in module AssertionError assert 12, 1 不等于 2 Traceback (most recent call last):File stdin, line 1, in module AssertionError: 1 不等于 2以下实例判断当前系统是否为 Linux如果不满足条件则直接触发异常不必执行接下来的代码 import sys assert (linux in sys.platform), 该代码只能在 Linux 下执行
http://www.sczhlp.com/news/197922/

相关文章:

  • 智能网站开发网站制作自己
  • 大公司的网站都找谁设计天津网络营销公司
  • 题解:qoj7303 City United
  • 多网融合实战指南:4G、Wi-Fi与以太网的智能协同之道
  • 最佳实践:基于Apache SeaTunnel从MySQL同步到PostgreSQL
  • 2025年冲压件厂家最新权威推荐榜:新能源/光伏/精密/异形/五金/铝/汽配/不锈钢/家具冲压件源头实力解析
  • 完整教程:PaVeRL - SQL:基于部分匹配奖励与语言强化学习的 Text-to-SQL 技术
  • 简述网站的设计流程wordpress百度收录怎么样
  • 广州增城网站建设17模板
  • 网站表格布局网站建设优化服务策划
  • 圆通我做网站拉养老网站建设 中企动力
  • 商城型网站建设广州营销型网站建设培训
  • 建设网站教程全集深圳画册设计专业公司
  • 企业网站推广多少钱代运营有哪些套路坑
  • app网站如何做推广温州网站建设企业
  • 无代码网站开发平台互联网营销师报名入口
  • 郑州网站建设郑州网站建设信阳新网站做seo优化
  • 沧州做家装的公司网站网站正在建设中提示页面设计欣赏
  • 贵州萝岗seo整站优化做影视网站该怎么发展
  • 取名网站排名太仓网站制作书生
  • 著名网站设计公司工商登记信息查询系统官网
  • 开发网站做什么加强住房公积金网站建设
  • 郴州网站小程序企业网站建设方案 ppt
  • 山东圣大建设集团网站云服务器是虚拟技术吗
  • 青海省教育厅门户网站网站建设属于税收
  • 海南网站建设fwlit开o2o网站需要什么手续
  • 湖南天辰建设责任公司网站网站建设项目有哪些
  • pos机网站建设方案鹿泉城乡建设局网站
  • 做3d动画的斑马网站手机网页wap
  • 企业网站建设的推广方式如何设计网站中的上传功能