充足管理,python极度管理

目录:

Python经常见到非凡分类与拍卖办法,python管理办法

Python不以为奇相当类型大约分为以下类:

1.AssertionError:当assert断言条件为假的时候抛出的非常

2.AttributeError:当访谈的对象属性荒诞不经的时候抛出的极其

3.IndexError:超过对象索引的范围时抛出的老大

4.KeyError:在字典中追寻二个不设有的key抛出的不行

5.NameError:访谈叁个官样文章的变量时抛出的万分

6.OSError:操作系统爆发的拾分

7.SyntaxError:语法错误时会抛出此特别

8.TypeError:类型错误,日常是不通类型之间的操作会冒出此丰盛

9.ZeroDivisionError:举行数学生运动算时除数为0时会身不由己此特别

至于更加多可怜请参见官方文书档案:

2.7版本链接

3.6版本链接

Python相当管理:

例1:现身非常最简便管理措施

#!/usr/bin/python 
#coding:utf8 

#try与except结合用法 

a = 1 
b = 2 

try : 
  assert a > b     #如果a>b判断为假时将抛出AssertionError异常 
except AssertionError:  #如果捕获到AssertionError异常将执行except下面的代码块 
  print ( "a<b" ) 

地点例子输出结果为 a<b 因为在断言时a>b为假,此时会抛出AssertionError格外,当捕获到此丰盛后就能试行except代码块中的语句

例2:使用八个except捕获至极

#!/usr/bin/python 
#coding:utf8 

#try与多个except结合用法,在try代码块中依次执行,只要捕获到异常就停止执行 

a = 1 
b = 2 
c = "1" 

try : 
  assert a < b 
  d = a   c 
except AssertionError: 
  print ( "a<b" ) 
except TypeError,e:   #这里的 e 为异常信息 
  print (e) 

地点实施的结果为 unsupported operand type(s卡塔尔(英语:State of Qatar) for : 'int' and 'str' 不扶助整型和字符串型相加,前边断言为真,所以不晤面世AssertionError至极,当时继教实践上边语句,那时就涌出了TypeError分外,那时候就能实践except TypeError上边的代码块,后边的e代表格外的错误音信,所以这边的结果是打印出分外的错误音讯

例3:try与except与else的使用

#!/usr/bin/python 
#coding:utf8 

a = 1 
b = 2 
c = "1" 

try : 
  assert a < b 
  d = a   b 
except AssertionError,e: 
  print ( "a<b" ) 
except TypeError,e: 
  print (e) 
else :          #当try代码块中执行没有发现任何异常的时候执行这里的语句 
  print ( "Program execution successful" ) 

地点施行结果为

例4:try与except与else与finally结合使用(能够未有else)

#!/usr/bin/python 
#coding:utf8 

#try与多个except结合用法,在try代码块中依次执行,只要捕获到异常就停止执行 

a = 1 
b = 2 
c = "1" 

try : 
  assert a < b 
  d = a   b 
  txt = open ( "/root/1.txt" ) 
  txt.write( "test" )    #上面打开文件默认以r方式打开,这里会抛出IOError异常 
except AssertionError,e: 
  print ( "a<b" ) 
except TypeError,e:   #这里的 e 为异常信息 
  print (e) 
except IOError,e: 
  print (e) 
else :          #当没有发现任何异常的时候执行这里的语句 
  print ( "Program execution successful" ) 
finally :         
#不管有没有民常都会执行finally代码块中的语句,通常用在打开文件,在文件处理过程过中出异常退出,这时候文件没有关闭 
  txt.close() 

Python不以为奇分外类型 差没多少分为以下类: 1.AssertionError:当assert断言条件为假的时候抛出的非凡...

Python中的万分处工学习笔记,python万分管理

Python 是面向对象的言语,所以程序抛出的不胜也是类。

大范围的老大类

1.NameError:尝试访谈叁个不曾表达的变量
2.ZeroDivisionError:除数为 0
3.SyntaxError:语法错误
4.IndexError:索引超过体系范围
5.KeyError:央浼二个不设有的字典关键字
6.IOError:输入输出错误(比如您要读的公文不设有)
7.AttributeError:尝试访谈未知的指标属性
8.TypeError:传给函数的参数类型不得法,比方给 int 函数字传送入字符型

自定义十分类

尽管内建的极其类已经席卷超过四分之一气象,但意气风发旦供给创立协调的百般类,能够运用上边的格局:

复制代码 代码如下:

class CustomException(Exception): # Exception 为全数特其余基类
    # 处理非常的代码

破获十分

复制代码 代码如下:

try: 
   # 要求开展捕获十分的代码,唯有现身非凡早先的代码被最终实施
except (Exception1,Exception2,...) as argument: 
   # 捕获到 (Exception1,Exception2,...卡塔尔国 里的要命才施行本段代码
   # argument 是一个这几个类的实例,包蕴非常的求实音信
except:
   # 捕获到 (Exception1,Exception2,...卡塔尔(قطر‎ 以外的十一分施行本段代码,用 sys 模块的 exc_info(卡塔尔(قطر‎ 函数能够获得万分消息
else: 
   # 如果没有捕获到非常则进行本段代码
finally: 
   # 无论是还是不是捕获到这几个都推行本段代码

上述讲话并不都以必需的,比如 try...except...、try...finally... 只怕try...except...else... 语句都以立竿见影的。大家还能 用 try...except...else... 代替 if...else...。

抛出极其

假设大家想要在团结编辑的次序中积极抛出非常,能够采取如下三种格局:

raise Exception(reason)

Exception 必得是四个老大类的称呼。可选项 reason 用来传递非凡的音讯。

assert expression[,reason]

assert 是预感的根本字。当表明式 expression 为真则什么都不做,不然抛出 AssertionError 极度。reason 提供十一分的音讯。

上下文物管理理器

鉴于指标 File 帮忙上下文物管理理合同,由此能够利用上面包车型客车章程张开文件:

复制代码 代码如下:

with open('filename') as fp:
   # 无论本段代码是不是现身十分,文件对象 fp 均能科学关闭

Example

复制代码 代码如下:

import sys

def div(num, den):
 print('_________________   (',num,',',den,')n')
 try:
  ans = num/den
  assert den != num, 'Equal' # 断言:分子分母不等于
  den = 'Changed'            # 假使推行本语句在此之前未现身极度,校正 den 的值
  if num % 2:                # 假使分子为奇数,则抛出拾壹分
   raise ValueError('Odd')
 except ZeroDivisionError as e:
  print('except ... as ...nt', e)
 except:
  print('exceptnt', sys.exc_info())
 else:
  print('elsent', ans)
 finally:
  print('finallynt', den)

div(1,0) # 除数为零,为 ZeroDivisionError 相当类
div(1,1) # 分子等于分母,断言为假,抛出极度
div(2,1) # 无异常
div(3,1) # 分子为奇数,通过 raise 抛出拾叁分
div(3,'x') # 不归于 ZeroDivisionError 的此外特别

运维结果:

复制代码 代码如下:

_________________   ( 1 , 0 )

except ... as ...
  division by zero
finally
  0
_________________   ( 1 , 1 )

except
  (<class 'AssertionError'>, AssertionError('Equal',), <traceback object at 0x00000000029B42C8>)
finally
  1
_________________   ( 2 , 1 )

else
  2.0
finally
  Changed
_________________   ( 3 , 1 )

except
  (<class 'ValueError'>, ValueError('Odd',), <traceback object at 0x00000000029B42C8>)
finally
  Changed
_________________   ( 3 , x )

except
  (<class 'TypeError'>, TypeError("unsupported operand type(s) for /: 'int' and 'str'",), <traceback object at 0x00000000029B42C8>)
finally
  x

Python 是面向对象的言语,所以程序抛出的不胜也是类。 置身事外的百般类 1.NameError:尝试访谈叁个...

AssertionError    断言语句(assert)退步

  生龙活虎、什么是特别?

AttributeError    尝试访谈未知的对象属性

  二、分外的计算

EOFError    顾客输入文件末尾标识EOF(Ctrl d)

  三、课时32课后习题及答案

FloatingPointError    浮点计算错误

 

GeneratorExit  generator.close(卡塔尔(英语:State of Qatar)方法被调用的时候

*******************

ImportError  导入模块失利的时候

风度翩翩、什么是格外?

IndexError  索引超过种类的约束

*******************

KeyError  字典中查找二个海市蜃楼的十分重要字

前后相继出现逻辑错误大概客户输入非法都会孳生特别,但那么些卓殊并非沉重的,不会产生程序崩溃死掉。能够运用Python提供的极其管理体制,在十三分现身的时候即刻抓获,并从里头消食掉。

KeyboardInterrupt 顾客输入中断键(Ctrl c)

那么怎么样是拾分呢?举个例证:

MemoryError 内部存款和储蓄器溢出(可因此删除对象释放内部存款和储蓄器)

file_name = input("请输入要打开的文件名:")
f = open(file_name,'r')
print("文件的内容是:")

for each_line in f:
      print(each_line)

NameError 尝试访谈八个官样文章的变量

此间当然即使客户输入的是精确的,但假设客商输入贰个不设有的公文名,那么地方的代码就虚亏:

NotImplementedError 还未贯彻的点子

请输入要打开的文件名:我为什么是一个文档.txt
Traceback (most recent call last):
  File "C:Users14158Desktoplalallalalal.py", line 2, in <module>
    f = open(file_name,'r')
FileNotFoundError: [Errno 2] No such file or directory: '我为什么是一个文档.txt'

OSError 操作系统爆发的极度(比如张开四个不设有的公文)

 上边的例子就抛出了一个FileNotFoundError的百般,那么Python平常还是可以抛出什么样万分呢?这里给我们做总计,未来境遇这么些格外就不会素不相识了。

OverflowError 数值运算超出最大规模

 

ReferenceError 弱援用(weak reference)试图访问多少个生机勃勃度被垃圾回收机制回笼了的对象

******************

RuntimeError 经常的运行时不当

二、非凡的下结论

StopIteration 迭代器未有越来越多的值

******************

SyntaxError Python的语法错误

 1、AssertionError:断言语句(assert)战败

IndentationError 缩进错误

大家还记得断言语句吧?在关于分支和巡回的章节里讲过。当assert那么些至关心重视要字前面包车型地铁尺度为假的时候,程序将告意气风发段落并抛出AssertionError分外。assert语句日常是在测量检验程序的时候用于在代码中置入检查点:

TabError Tab和空格混合使用

>>> my_list = ["小甲鱼"]
>>> assert len(my_list) > 0
>>> my_list.pop()
'小甲鱼'
>>> assert len(my_list) > 0
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    assert len(my_list) > 0
AssertionError

SystemError Python编写翻译器系统错误

 

SystemExit Python编写翻译器进程被关闭

2、AttributeError:尝试访谈未知的对象属性

TypeError 不一致品类间的不行操作

>>> my_list = []
>>> my_list.fishc
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    my_list.fishc
AttributeError: 'list' object has no attribute 'fishc'

UnboundLocalError 访谈三个未开头化的本地变量(NameError的子类)

 

UnicodeError Unicode相关的失实(ValueError的子类)

3、IndexError:索引超过系列的节制

UnicodeEncodeError Unicode编码时的大错特错(UnicodeError的子类)

>>> my_list = [1,2,3]
>>> my_list[3]
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    my_list[3]
IndexError: list index out of range

UnicodeDecodeError Unicode解码时的不当(UnicodeError的子类)

 

UnicodeTranslateError Unicode调换时的荒唐(UnicodeError的子类)

4、KeyError:字典中探索一个不设有的重要字

ValueError 传入无效的参数

>>> my_dict = {"one":1,"two":2,"three":3}
>>> my_dict["one"]
1
>>> my_dict["four"]
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    my_dict["four"]
KeyError: 'four'

ZeroDivisionError 除数为零

 

以下是 Python 内置十分类的档案的次序结构:

5、NameError:尝试访谈三个荒诞不经的变量

BaseException

当尝试访谈多少个不设有的变量时,Python会抛出NameError非凡:

-- SystemExit

>>> fishc
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    fishc
NameError: name 'fishc' is not defined

-- KeyboardInterrupt

 

-- GeneratorExit

6、OSError:操作系统产生的格外

-- Exception

OSError看名就会知道意思正是操作系统产生的老大,像张开一个不设有的公文仲引发FileNotFoundError,而以此FileNotFoundError就是OSError的子类。例子上边已经演示过,这里就不另行了。

-- StopIteration

 

-- ArithmeticError

7、SyntaxError:Python语法错误

|    -- FloatingPointError

风流倜傥经赶过SyntaxError是Python语法的谬误,这时候Python的代码并不能继续实践,你应该先找到并改革错误:

|    -- OverflowError

>>> print "I love fishc.com"
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("I love fishc.com")?

|    -- ZeroDivisionError

 

-- AssertionError

8、TypeError:分裂类别间的不行操作

-- AttributeError

些微项目分化是无法互相举办总计的,不然会抛出TypeError非常:

-- BufferError

>>> 1   "1"
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    1   "1"
TypeError: unsupported operand type(s) for  : 'int' and 'str'

-- EOFError

 

-- ImportError

9、ZeroDivisionError:除数为零

-- LookupError

地球人都明白除数不可能为零,所以除以零就能够引发ZeroDivisionError万分:

|    -- IndexError

>>> 5/0
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    5/0
ZeroDivisionError: division by zero

|    -- KeyError

 

-- MemoryError

作者们了然了那几个极其,那什么样捕获那些特别呢?

-- NameError

抓获相当可以用try语句完成,任何出以往try语句范围内的特别都会被当即抓获到。try语句有三种完毕方式:风姿洒脱种是 try-except,另风度翩翩种是try-finally。

|    -- UnboundLocalError

 

-- OSError

*******************************

|    -- BlockingIOError

三、课时32课后习题及答案

|    -- ChildProcessError

*******************************

|    -- ConnectionError

图片 1图片 2图片 3图片 4图片 5图片 6图片 7图片 8图片 9

|    |    -- BrokenPipeError

 

|    |    -- ConnectionAbortedError

|    |    -- ConnectionRefusedError

|    |    -- ConnectionResetError

|    -- FileExistsError

|    -- FileNotFoundError

|    -- InterruptedError

|    -- IsADirectoryError

|    -- NotADirectoryError

|    -- PermissionError

|    -- ProcessLookupError

|    -- TimeoutError

-- ReferenceError

-- RuntimeError

|    -- NotImplementedError

-- SyntaxError

|    -- IndentationError

|        -- TabError

-- SystemError

-- TypeError

-- ValueError

|    -- UnicodeError

|        -- UnicodeDecodeError

|        -- UnicodeEncodeError

|        -- UnicodeTranslateError

-- Warning

-- DeprecationWarning

-- PendingDeprecationWarning

-- RuntimeWarning

-- SyntaxWarning

-- UserWarning

-- FutureWarning

-- ImportWarning

-- UnicodeWarning

-- BytesWarning

-- ResourceWarning

本文由星彩网app下载发布于计算机编程,转载请注明出处:充足管理,python极度管理

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。