python中的异常处理相关语句和迭代器

异常(基础) exception
什么是错误
    错误是指由于逻辑或语法等导致一个程序无法正常执行的问题
什么是异常
    异常是程序出错时标识的一种状态
    当异常发生时,程序不会再向下执行,而转去调用此函数的地方待处理此错误并恢复为正常状态
  作用:
    用作信号,通知上层调用者有错误产生需要处理
try语句:
    两种语法:
    try- except
    try --finally 语句
try-except语句
    语法:
    try:
        可能触发异常的语句
    except 错误类型1 [as 变量名1]:
        异常处理语句1
    except 错误类型2 [as 变量名2]:
        异常处理语句2
    except (错误类型3,错误类型4) [as 变量3]:
        异常处理语句3
    except:
        异常处理语句other
    else:
        未发生异常语句
    finally:
        最终语句
    作用:
    尝试捕获异常通知,将程序由异常流程转为正常流程并继续执行
    说明:
        except子句可以有一个或多个,但至少一个
    示例I;
练习:
写一个函数,get_score()来获取学生输入的成绩(0~100)的数,如果用户输入的不是0~100的整数则返回0,
否则返回输入的整数
def get_score():
    try:
        x=input(‘请输入一个数‘)
    except:
        print(‘unexpect int‘)
    else:
        if 0<=x<=100:
            return 0
        else:
            return x
get_score()

try-finally 语句
    语法:
        try:
            可能触发异常的语句
        finally:
            最终语句
    说明:
        finally子句不可以省略
        一定不会存在except子句
    作用:
        通常用try-finally语句来做触发异常时必须要处理的事情,无论异常是否发生,finally子句都会被执行
    try-finally 语句不会改变程序的(正常/异常状态)

def fry_egg():
    print(‘打开天然气...‘)
    try:
        count=int(input(‘请输入鸡蛋个数:‘))
        print(‘完成煎蛋,总煎%d个鸡蛋‘%count)
    finally:
        print(‘关闭天然气‘)
try:
    fry_egg()
except SyntaxError:
    print(‘煎鸡蛋时,发生异常,已转为正常‘)

raise 语句:
  作用:
    触发一个错误,让程序进入异常状态
    发送错误通知给调用者
  语法:
    raise 异常类型
    或
    raise 异常对象
    或
    raise  # 重新触发上一次异常
  示例见:raise.py
    raise2.py

# def make_exercise():
#     print(‘函数开始‘)
#     raise ZeroDivisionError
#     print(‘函数结束‘)
# # make_exercise()
# print(‘程序结束‘)

# try:
#     make_exercise()
# except ZeroDivisionError:
#     print(‘接受到make_ex发出的错误通知‘)
# print(‘程序正常结束‘)

def make_exercise():
    print(‘函数开始‘)
    # raise ZeroDivisionError
    e=ValueError(‘值错误‘)  #创建一个错误对象
    raise e
    print(‘函数结束‘)
# make_exercise()
print(‘程序结束‘)

try:
    make_exercise()
except ZeroDivisionError:
    print(‘接受到make_ex发出的错误通知‘)
except ValueError as err:
    print(‘valueerror--->‘,err)
print(‘程序正常结束‘)
#此示例示意raise无参的用法

def fa():
    print(‘----fa----开始‘)
    raise ValueError(‘故意制造一个错误!‘)
    print(‘----fa----结束‘)
def fb():
    print(‘fb开始‘)
    try:
        fa()
    except ValueError as err:
        print(‘fa里发生了值错误已处理‘)
        raise
        #此处如果要将err 再次向上传递
    print(‘fb结束‘)
try:
    fb()
except ValueError:
    raise
    print(‘再一次收到fb内部发生的错误‘)

练习1
写一个函数get_age()用来获取一个人的年龄信息此函数规定用户只能输入1~140之间的整数,如果用户输入得数是其他
的数值,则直接触发valueError类型错误!
如:

def get_age():
    x=int(input(‘请输入您的年龄,范围(1~140)‘))
    # if x not in range(1,140):
    #     raise ValueError(‘类型错误‘)
    if x<1:
        raise ValueError(‘您的年龄太小‘)
    if x>140:
        raise ValueError(‘您的年龄太大‘)
    return x
try:
    age=get_age()
    print(‘用户输入的年龄是‘,age)
except ValueError as err:
    # raise
    print(‘用户输入的不是140以内的数字,获取年龄失败‘)
    print(‘err=‘,err)

aseert 语句
    语法:
    assert 真值表达式,错误数据(通常是字符串)
    作用:
        当真值表达式为false时,用错误数据创建一个AssertionError类型错误,并进入异常状态
    等同于:
        if bool(真值表达式)==False:
                raise AssertionError(错误数据)
    示例见:
        assert.py

def get_score():
    s=int(input(‘请输入学生成绩:(0~100)‘))
    assert 0<=s<=100 ,"成绩超出范围"
    #if bool(0<=s<=100):
        # raise AssertionError("成绩超出范围")
    return s
try:
    score=get_score()
    print(‘学生的成绩为:‘,score)
except AssertionError as err:
    print(‘AssertionError类型的错误被触发,且已捕获‘)
    print(‘err=‘,err)

小结: 
    异常处理相关的语句
        try-except
        作用:捕获异常通知,将程序有异常状态转为正常状态
        try-finally
        作用:执行必须要执行的语句
        raise
        作用:触发异常(抛出异常),让程序进入异常流程
        assert
        作用:根据条件来触发AssertionError类的异常并进入异常流程
迭代器 Iterator
    什么是迭代器
        迭代器是访问可迭代对象的工具
        迭代器是指用iter(obj)函数返回的对象(实例)
        迭代器可以用next(it)函数获取可迭代对象的数据
    迭代器函数:
        iter(iterable)从可迭代对象中返回一个迭代器,iterable必须是能提供一个迭代器的对象
        next(iteerable)从迭代器iterable中获取下一个记录,如果无法获取下一条记录,则触发
        StopIteration异常通知
    说明:
        迭代器只能往前取值,不会后退
    示例:
l=[1,2,3,4]
it=iter(l)
print(next(it))

示例:#用迭代器和while来代替for循环
    iterator.py
练习:
    有一个集合:
        s={‘唐僧‘,‘悟空‘,‘白洁‘,‘沙僧‘}
    用for进行遍历

s={‘唐僧‘,‘悟空‘,‘白洁‘,‘沙僧‘}
it=iter(s)
while True:
    try:
        print(next(it))
    except StopIteration:
        print(‘Bianlijieshu‘)
        break

原文地址:https://www.cnblogs.com/sky-ai/p/9682996.html

时间: 2024-12-13 07:39:55

python中的异常处理相关语句和迭代器的相关文章

第五章 python中的异常处理

每种编程语言都会有自己的异常处理机制,虽然各有特色,但基本上都差不多,那么python中强大异常处理机制是什么样的呢? 一.异常: python用异常对象来表示异常情况,遇到错误后,会引发异常.如果异常对象并未被处理或捕获,程序会用回溯终止执行: 1 >>> 1/0 2 Traceback (most recent call last): 3 File "<stdin>", line 1, in <module> 4 ZeroDivisionE

Python基础---python中的异常处理

Python中的异常处理 一.什么是异常处理 python解释器检测到错误,触发异常(也允许程序员自己触发异常) 程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关) 如果捕捉成功则进入另外一个处理分支,执行你为其定制的逻辑,使程序不会崩溃,这就是异常处理. 二.为什么要进行异常处理 python解析器去执行程序,检测到了一个错误时,触发异常,异常触发后且没被处理的情况下,程序就在当前异常处终止,后面的代码不会运行,谁会去用一个运行着突然就崩溃的软件. 所以你必须

python 中简单的输出语句

1 python 中简单的输出语句 #coding:utf-8#输出的是整数,得到的也是整数,用raw_inputusername=raw_input('请输入用户名:')#输出的是整数或者字符串,得到的只是字符串#在终端输入时:python空格.py文件拖入pwd=raw_input('请输入密码:')#两个条件同时成立才执行if username=='lily'and pwd=='abc':print 'login'else:print 'notlogin' 2 利用python定义简单的函

Python中的异常处理

异常处理在任何一门编程语言里都是值得关注的一个话题,良好的异常处理可以让你的程序更加健壮,清晰的错误信息更能帮助你快速修复问题.在Python开发中,和部分高级语言一样,使用了try/except/finally语句块来处理异常,如果你有其他编程语言的经验,实践起来并不难. 异常处理语句 try-excpet-finally 实例代码 defdiv(a, b): try: print(a / b) exceptZeroDivisionError: print("Error: b should n

Python 中的异常处理

Python 中内置了多种异常处理方式. 1 try····except··· a = 10 b = 0 try: i = a/b except Exception, e: print e >>> integer division or modulo by zero # 先执行try语句块的内容,若能正常执行,则略过except内容:若try语句块不能正常运行,则紧跟着执行except语句块内容: a = 10 b = 0 try: i = a/b except Exception, e

Python入门(二):Python中数据类型、print语句、注释

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型.在Python中,能够直接处理的数据类型有以下几种: 一.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0

Python中的可迭代对象与迭代器对象

刚刚学习Python,对“可迭代对象”和"迭代器对象"的个人理解,不知道对不对. 1.几个概念 1.迭代工具:包括for循环.列表解析.in成员关系测试.....等等在内的,用于依次访问可迭代对象(容器)内元素的操作(?). 2.迭代器对象:具有__next__()方法的对象.该方法能够自动返回下一个结果,当到达序列结尾时,引发StopIteration异常. 3.可迭代对象:具有__iter__()方法的对象.该方法可获取其迭代器对象. 2.迭代过程(以for循环为例) for循环开

python中os路径相关的函数 os.mkdir和os.makedirs

传送门:http://blog.csdn.net/shennongzhaizhu/article/details/51455063 在Python中可以使用os.mkdir()函数创建目录(创建一级目录). os.mkdir(path) 例如要在D盘下创建hello的目录 >>> import os >>> os.mkdir('d:\hello') 其原型如下所示: 其参数path 为要创建目录的路径(创建多级目录) >>> import os >

python中的异常处理:厌而不舍

  什么是异常? ------异常:不正常的情况 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行.一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Python对象,表示一个错误. 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行. 异常出现的原因: 不正常的情况,在程序中,会有两种体现: 代码错误或语法错误:程序都运行不起来! 程序运行过程中,在某些特定条件下,不合适的数据引起程序出现错误导致程序崩溃 例如:要求用户输入一个数字,但是