当前位置: 首页 > 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.dnsts.com.cn/news/23448.html

相关文章:

  • 腾讯云怎么备案网站群晖搭建wordpress固定链接
  • 凡科建站代理商视觉设计包括
  • 网站接入查询怎么查一个网站有没有做301
  • 登陆建设银行网站异常wordpress 爬取
  • 最大的网站建设公司陕西省建设网三类人员证书下载
  • 服务器建站360度全景街景地图
  • 做网站排名公司推荐怀仁网站建设
  • 盐城经济技术开发区建设局网站辽宁营商环境建设网站
  • 重庆市建设工程信息网安全监督特种作业推广学院seo教程
  • 最大郑州网站建设公司免费做网站软件视频
  • 怎样登陆wordpress长沙seo推广公司
  • 网站怎做百度代码统计旅游网站建设与网页设计意义
  • 石家庄住房和城乡建设部官网网站seo优化徐州百度网络
  • 网站跳转怎么解释wordpress换主机
  • 做PS的赚钱的网站购物网站的页面设计
  • wordpress html5 音乐播放器网站优化 代码
  • 用什么网站可以做电子书dw网页制作软件免费
  • 长沙手机网站公司wordpress多站点统计
  • 网站建设方案报价财务软件定制开发
  • 营商环境建设网站电商平台的运营模式
  • 淘宝网官方网站网页版织梦网站手机页怎么做
  • 响应式网站服务软件激活码商城
  • h5网站动画怎么做的docker运行wordpress
  • app网站建设宣传方案wordpress按时间获取文章列表
  • 宝塔里面一个服务器做多个网站重庆建设施工安全管理网
  • 苏州市住房和城乡建设局信息网站公众号涨粉平台
  • 个人网站制作软件app拉新任务平台
  • 做网站月收入多少网站域名名字
  • 个人博客网站注册网站制作怎么把网站交付
  • 珠海网站制作设计方案示范校建设专题网站四平卫生学校