iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >以写代学:python 错误、异常、断言
  • 781
分享到

以写代学:python 错误、异常、断言

断言异常错误 2023-01-31 00:01:04 781人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

1.错误(1)语法错误     语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器无法编译。这些错误必须在程序执行前纠正。(2)逻辑错误     逻辑错误可能是由于不完整或是不合法的输入所致。还可能是逻辑无法生成,计算,或是输出结

1.错误

(1)语法错误

     语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器无法编译。这些错误必须在程序执行前纠正。

(2)逻辑错误

     逻辑错误可能是由于不完整或是不合法的输入所致。还可能是逻辑无法生成,计算,或是输出结果需要的过程无法执行

2.异常

(1)当python检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常

(2)异常是因为程序出现了错误而在正常控制流以外采取的行为。这个行为又分为两个阶段首先是引起异常发生的错误,然后是检测(和采取可能的措施)阶段

异常
描述
NameError
未声明/初始化对象
IndexError
序列中没有此索引
SyntaxError
语法错误
KeyboardInterrupt
用户中断执行
EOFError
没有内键输入,到达EOF标记
ioError
输入/输出操作失败

3.异常处理

3.1 try-except

     把你认为有可能发生异常的语句放到try里边去执行,想要捕获什么异常,就把异常放到except里边去,捕获后的异常怎么去处理,把处理的语句写到except下边,包含finally语句,except语句,try语句,else语句,with语句,实例如下。

#!/usr/bin/env Python

import time
import sys

for i in range(1,11):
    sys.stdout.write("\r%s" % i)
    sys.stdout.flush()
    try:
        time.sleep(1)
    except KeyboardInterrupt:
        pass

     也可以有多个expect语句,无论是CTRL+C或者CTRL+D还是直接回车或者输入不是整数的都会有相关提示,示例1是给用户看的,会输出相应的提示信息。示例2是给程序员看的,会输出出提示信息外还有程序报错信息也一并输出。实例3可以捕获所有异常,然后统一输出某一句指定的话。

示例一:
#!/usr/bin/env python

try:
    num = int(raw_input("Number: "))
except ValueError:
    print "Error: you must input a number"
except (KeyboardInterrupt, EOFError):    //如果同时捕获多个异常,需加圆括号,否则会
    print "User cancelled          认为是保存错误原因的变量
示例二:    
#!/usr/bin/env python

try:
    num = int(raw_input("Number: "))
except ValueError, reason:            //,号右边的变量(自己定义)是保存错误原因
    print "Error: you must input a number",reason  
except (KeyboardInterrupt, EOFError): 
    print "User cancelled
示例三:
#!/usr/bin/env python

try:
    num = 100 / int(raw_input("Number: "))
except:                //except后边加:表示捕获所有异常,但是不推荐这种写法
    print "something wrong     因为不知道究竟是什么报错

3.2 else语句&&finally语句

      实例4算是一个比较完整的捕获异常和没有异常之后程序怎么执行的例子,没有异常就使用else语句执行,最后的finally语句,不管异常不异常都会执行,可以用在文件打开后发生异常导致文件没有关闭,可能会发生数据损坏,使用finally可以保证文件总是能正常的关闭。

示例四:
#!/usr/bin/env python

try:
    num = 100 / int(raw_input("Number: "))     
except (ValueError, ZeroDivisionError),e     //不同的异常,输出不同的信息,并且保存报错信息
    print "Error:", e
except (KeyboardInterrupt, EOFError):        //两种退出,都友好提示退出
    print "exit."
else:                                        //如果没有异常,则正常输出num
    print num
finally:                                     //不管异常是否发生,都会执行此语句
    print done

3.3 with语句

with语句是用来简化代码的,在将打开文件的操作放在with语句中,代码块结束后,文件将自动关闭

>>> with open("try.py") as f:
...     data = f.readlines()
...
>>> with open("/etc/passwd") as f:
...     for line in f:
...         print line,

4.触发异常

(1)要想引发异常,最简单的形式就是输入关键字raise,后面跟要引发的异常的名称

(2)执行raise语句时,Python会创建指定的异常类的一个对象

(3)raise语句还可指定对异常对象进行初始化的参数

#!/usr/bin/env python

for i in range(100):
    if i > 10:
        raise ValueError, "diaosi"
    print i,
[root@pythion python]# python raise1.py         //执行程序是如下效果
0 1 2 3 4 5 6 7 8 9 10
Traceback (most recent call last):
  File "raise1.py", line 5, in <module>
    raise ValueError, "diaosi"
ValueError: diaosi

5.断言

(1)断言是一句必须等价于布尔值为真的判定

(2)此外,发生异常也意味着表达式为假

>>> assert 7 > 3, "wrong"              //为真,则没有输出
>>> assert 7 < 3, "wrong"              //为假,则输出,号后边的语句
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError: wrong

6.脚本实例

#!/usr/bin/env python

import random
import operator

ops = {"+": operator.add, "-": operator.sub}

def probe():
    nums = [random.randint(1,50) for i in range(2)]
    nums.sort(reverse=True)
    op = random.choice("+-")
    answer = ops[op](*nums)
    prompt = "%s%s%s = " % (nums[0], op, nums[1])
    tries = 0
    while tries < 3:
        result = int(raw_input(prompt))
        if answer == result:
            print "very Good"
            break
        else:
            print "wrong answer."
            tries += 1
    else:
        print "%s%s" % (prompt, answer)


def main():
    while True:
        probe()
        try:
            goon = raw_input("Next one(y/n)?").strip()[0]
        except IndexError:
            continue
        except (KeyboardInterrupt, EOFError):
            goon = "n"

        if goon in "nN":
            break

if __name__ == "__main__":
    main()


--结束END--

本文标题: 以写代学:python 错误、异常、断言

本文链接: https://www.lsjlt.com/news/182982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 以写代学:python 错误、异常、断言
    1.错误(1)语法错误     语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器无法编译。这些错误必须在程序执行前纠正。(2)逻辑错误     逻辑错误可能是由于不完整或是不合法的输入所致。还可能是逻辑无法生成,计算,或是输出结...
    99+
    2023-01-31
    断言 异常 错误
  • Python学习之异常断言详解
    该章节我们来学习 异常的最后一个知识点 - 断言 ,断言是判断一个表达式,在表达式为 False 的时候触发异常。表达式我们可以对号入座,可以是条件语句中的声明,也可以是是 whil...
    99+
    2024-04-02
  • python错误和异常
    一:语法错误syntax errors        熟悉语法!二:异常    ①打印错误信息时,异常的类型作为异常的内置名显示,并以调用栈的形式显示具体信息    ②常见的异常:            NameError、       ...
    99+
    2023-01-30
    异常 错误 python
  • Python异常断言实例分析
    本篇内容介绍了“Python异常断言实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!断言是判断一个表达式,在表达式为 False 的时...
    99+
    2023-06-29
  • Go语言学习笔记之错误和异常详解
    目录错误异常总结错误 Go 语言通过内置的错误接口提供了非常简单的错误处理机制,Error 类型是一个接口类型。 type error interface { Error()...
    99+
    2024-04-02
  • Python错误与异常处理
    1. 从键盘输入一个整数,求 100 除以它的商,并显示输出。要求对从键盘输入的数值进行异常处理。 try:     n=int(input("请输入一个整数:"))     x=1...
    99+
    2024-04-02
  • Python 错误和异常小结
    1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类。常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不用Python了)。异常描述NameEr...
    99+
    2023-01-31
    小结 异常 错误
  • 编写Python代码常见的错误有哪些
    这篇文章主要讲解了“编写Python代码常见的错误有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写Python代码常见的错误有哪些”吧!编写过于风格化的代码这是Python初学者的一...
    99+
    2023-06-15
  • Python常遇到的错误和异常
    目录1、语法错误2、异常3、异常处理4、try/except...else5、try-finally 语句6、抛出异常7、用户自定义异常在日常的学习Python过程中,由于本身的编程...
    99+
    2024-04-02
  • Python运行错误异常代码含义对照表
    Python常见的异常提示及含义对照表如下: 异常名称 描述 ...
    99+
    2024-04-02
  • Go语言错误处理异常捕获+异常抛出
    目录一、error变量可以做什么1.定义一个error变量2.错误的处理3.做函数返回值4.做函数参数二、模拟异常的捕获与抛出1.defer简介2.使用recover模拟异常的捕获3...
    99+
    2024-04-02
  • Python错误异常怎么解决
    这篇“Python错误异常怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Pytho...
    99+
    2024-04-02
  • Python错误+异常+模块总结
    目录错误和异常语法错误异常异常处理抛出异常模块前言: 本篇主要讲两方面,错误和异常以及模块。在编程时遇见错误信息在所难免,Python中会也有很多种错误信息,常见的两种就是语法错误和...
    99+
    2024-04-02
  • springboot断言异常封装与统一异常处理实现代码
    目录步骤1、异常类2、统一异常处理配置类3、断言类4、使用补充:异常处理器说明handleServletExceptionhandleBindExceptionhandleValid...
    99+
    2023-01-11
    springboot断言异常封装 springboot统一异常 springboot异常处理
  • Python错误和异常总结详细
    目录1、语法错误2、异常3、try...except...语句4、多个except子句5、try...except Exception as e语句6、try...except......
    99+
    2024-04-02
  • Python基础之(九)错误和异常
    >>> for i in range(10) File "<stdin>", line 1 for i in range(10) ^ SyntaxError:...
    99+
    2023-01-31
    异常 错误 基础
  • 理解 Python 错误和异常:让代码运行更可靠
    1. Python 错误类型 Python 错误可以分为两类:编译时错误和运行时错误。编译时错误是指在程序运行之前就可以被发现的错误,例如语法错误或类型错误。运行时错误是指在程序运行过程中发生的错误,例如索引错误或零除错。 2. 异常处...
    99+
    2024-02-06
    Python 错误 异常 异常处理 调试
  • pycharm的debug调试以及异常,Python 中错误的处理方式
    在b站看了详细的视频教程,做一个系统的总结。第一次写关于pycharm的debug调试以及python代码运行报错处理的帖子,错误地方请大家指出。 第一个部分:pycharm的debug调试 作为一个...
    99+
    2023-09-08
    python
  • python基础之错误和异常处理
    import Exception # except 在捕获错误异常的时候 是要根据具体的错误类型来捕获的 # 用一个块 可以捕获多个不同类型的异常 # EXception ...
    99+
    2024-04-02
  • PHP学习笔记:异常处理与错误调试
    在编写PHP代码的过程中,难免会遇到各种错误和异常。良好的异常处理和错误调试能够帮助我们更好地定位问题和修复bug,提高代码的可靠性和稳定性。本文将介绍PHP中的异常处理和错误调试的具体方法,并给出相关的代码示例。一、异常处理异常的概念在程...
    99+
    2023-10-21
    错误调试 异常处理 关键词:PHP
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作