1697_python编程_assertions and exceptions

这篇具有很好参考价值的文章主要介绍了1697_python编程_assertions and exceptions。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

全部学习汇总: GreyZhang/python_basic: My learning notes about python. (github.com)

这部分主要关于程序中的异常类型以及处理方式

exception:

常见的异常类型(exceptions)有几种:索引错误、类型错误、名字错误、混合类型错误。对应这几种分类,给出以下几个例子:

索引错误(列表等数组类变量越界)

>>> test = [1,2,3]

>>> test[4]

Traceback (most recent call last):

  File "<pyshell#1>", line 1, in <module>

    test[4]

IndexError: list index out of range

类型错误

>>> int(test)

Traceback (most recent call last):

  File "<pyshell#3>", line 1, in <module>

    int(test)

TypeError: int() argument must be a string or a number, not 'list'

名字错误

>>> a

Traceback (most recent call last):

  File "<pyshell#4>", line 1, in <module>

    a

NameError: name 'a' is not defined

没有进行强制类型转换的混合类型会引发一个类型错误:

>>> 'a'/4

Traceback (most recent call last):

  File "<pyshell#5>", line 1, in <module>

    'a'/4

TypeError: unsupported operand type(s) for /: 'str' and 'int'

处理方式:

1,不处理,直接放过

2,返回一个错误值

3,停止执行,抛出一个异常

异常的捕捉

使用try语句可以捕捉到异常句柄。

例如:

try:

f = open(‘test.txt’)

# code to read and process test.txt

except:

raise Exception(“can’t open files”)

以上程序执行时,如果test.txt不存在或者因为某种原因无法打开,将会抛出一个异常提示文件打不开。

assertion:

捕捉我们已知或者假设的某些异常,可以使用assert语句。示例如下:

>>> def avg(grades,weights):

         assert not len(grades) == 0, 'no grades data'

         print "test"

        

>>> avg([],123)

Traceback (most recent call last):

  File "<pyshell#4>", line 1, in <module>

    avg([],123)

  File "<pyshell#3>", line 2, in avg

    assert not len(grades) == 0, 'no grades data'

AssertionError: no grades data

>>> avg([1,2,3],3)

Test

使用assert,可以比较方便地按照我们自己制定的提示需求来给我们提示相应的异常或者错误。

assert常用的一些场景:

检查参数的类型或者数值

检查遇到的数据结构的变化

检查返回值的约束条件

检查函数约束条件的变化(例如:列表不是复数形式)

小结:

异常与错误处理在程序中并不一定是必需的,并且这回在一定程度上拖慢程序执行的效率。但是这会是程序可靠性提升的一个保障,在编写可靠稳定的处理程序时这通常会是不可缺少的一个环节。文章来源地址https://www.toymoban.com/news/detail-431618.html

到了这里,关于1697_python编程_assertions and exceptions的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Python] 断言assert与单元测试

    在Python中,断言(assertion)是一种用于检查程序中的条件是否为真的工具。它用于在程序的特定点处验证一些假设,并在条件为假时触发异常如果断言为真,则程序继续执行;如果断言为假,则引发AssertionError异常。 assert语句的语法如下: 其中,condition是一个布尔表达式,如

    2024年02月02日
    浏览(37)
  • Python-assert(断言)的用法

    时机 防御性的编程 运行时对程序逻辑的检测 合约性检查(比如前置条件,后置条件) 程序中的常量 检查文档 目的 与其让程序在晚些时候崩溃,不如在错误条件出现时,就直接让程序崩溃,这有利于我们对程序排错,提高程序的健壮性。assert 语句通常用于检查用户的输入

    2024年03月22日
    浏览(41)
  • 好用的编程软件5个(全部免费,带链接加其它软件推荐)

    提示:这个目录有问题,最好用左边的 前言 提示 编程软件 1.VS code(全称:Visual Studio Code) 2.HBuilderX 3.Eclipse(集成开发环境) 4.Notepad++ 5.Dev-C++(别名:Dev-cpp) 附录 1.其它软件推荐: 2.后记 3.投票 编程,肯定少不了一些编程软件,以下是5个实用的编程软件。(第一次发文章

    2024年02月04日
    浏览(35)
  • 纯干货!一文get昇腾Ascend C编程入门全部知识点

    本文分享自华为云社区《昇腾Ascend C编程入门教程》,作者:昇腾CANN 。 2023年5月6日,在昇腾AI开发者峰会上,华为正式发布了面向算子开发场景的昇腾Ascend C编程语言。Ascend C原生支持C/C++编程规范,通过多层接口抽象、并行编程范式、孪生调试等技术,极大提高了算子的开发

    2024年02月10日
    浏览(35)
  • Linux 下 Java Socket 编程报 java.net.Exception:Permission denied (权限不足)

    本人用Linux部署springboot项目时遇见这个错误,原因很简单,就是端口号没有选对。 在linux系统中,端口号再1024以下的需要root权限,只要把端口改成大于1024的就可以了,但避开一些软件的默认端口,如Tomcat的8080端口,mysql的3306端口。 解决方法: 设置临时属性重新启动即可。

    2024年02月11日
    浏览(40)
  • Python获取全部股票数据

    目前整个沪深京A股市场总共有5000余支股票,那么我们怎么能获取到这些股票的数据(股价、市值、市盈率、市净率等)呢? 小编常用的有三个网站,分别是东方财富、同花顺、雪球,请自行查阅。 我们以东方财富为例,打开东方财富行情中心,找到全部股票数据后,找到对

    2024年02月15日
    浏览(38)
  • 【跟小嘉学 Rust 编程】十八、模式匹配(Patterns and Matching)

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月11日
    浏览(42)
  • python之except关键字

    在python中,except是用于处理异常的,通常与\\\'try\\\'一起使用。异常处理的基本结构是通过try块包裹可能发生异常的代码,然后使用except块捕获和处理可能发生的异常。 如果在try块中发生异常,python会跳转到与异常类型匹配的except块,执行相应的异常处理代码。 示例:

    2024年01月16日
    浏览(51)
  • Bug小能手系列(python)_13: RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might

    在运行 Python 代码时出现报错: RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. 注意:报错对应的代码部分与实际出现错误的部分是不同的。具体报错

    2024年02月04日
    浏览(38)
  • 使用Python批量修改PPT字体和提取全部文字到word

    将一份PPT的每一页字体、大小、是否加粗都统一,是一个常见需求。特别是字体统一是高频、热点需求。在python操控PPT常用库python-pptx中有一个bug,对字体的修改只能修改数字和英文字母,无法修改汉字。即 run.font.namet 属性只能修改英文和数字,并且 run.font.name 识别的也是英

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包