python异常处理和程序调试:assert语句

2022-07-3111:09:22编程语言入门到精通Comments807 views字数 1454阅读模式

使用IDLE自带功能学习了Python的程序调试,除了自带的工具外,还可以通过assert语句进行调试。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

我们在列表中进行插入操作的时候使用过assert,它在程序调试的时候被称为断言,它的语法结构为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

1
assert expression[,describe]

expression为一个表达式,如果为真就不采取操作,反之抛出AssertionError异常。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

我们先举个简单的例子来了解一下assert语句,我们输入两个数字,然后我们要在输入之后就查看一下两个数值的大小,如果前者大于后者则成立,前者小于或等于后者就输出相应语句,代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

1
2
3
4
= int(input('请输入一个整数:'))
= int(input('请输入一个整数:'))
assert n > m,'wrong'
print('程序可以正常运行')

输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

1
2
3
请输入一个整数:4
请输入一个整数:3
程序可以正常运行

这是一个简单的断言使用方式,我们还可以结合前面学习到的抛出异常结合assert语句来使用一下。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

我们先写一个函数,判断一个数字是否属于质数,然后我们输入一些测试数据通过断言进行测试,如果整组数据全是质数则通过测试,如果存在非质数数则抛出异常,代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def is_prime(num):
    from math import sqrt
    for in range(2int(sqrt(num) + 1)):
        if num % == 0:
            return False
    else:
        return True
if __name__ == '__main__':
  try:
    my_list =[]
    for in range(4):
      = int(input())
      my_list.append(s)
    print('my_list当前数据:',my_list)
    for in my_list:
      assert is_prime(i) == True,'ERROR'
  except AssertionError:
    print('列表中存在非质数')
  else:
    print('列表中全为质数')

我们先测试一组全为质数的数据,输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

1
2
3
4
5
6
2
7
13
17
my_list当前数据: [271317]
列表中全为质数

我们再测试一组存在非质数的数据,输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

1
2
3
4
5
6
2
3
4
16
my_list当前数据: [23416]
列表中存在非质数

在这个函数中,我们首先定义一个函数进行质数的判定,如果是质数则返回True,如果不是返回Flase。然后我们在main中直接使用异常处理机制,我们在try语句中创建一个列表来存放我们输入的数据,然后对每个数据进行断言,如果出现非质数的数据,那么就执行异常语句中的相应语句,结束操作,反之则继续进行操作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

断言语句对比与上一节我们学习的IDLE自带的程序调试功能,这个是写在我们的程序中的,我们可以在程序写完之后运行的时候很快的发现我们出问题的语句,并找到原因,通过这种方式也有利于他人更清晰的理解自己的代码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

关于异常处理语句和程序调试就学习到这里,这些内容多用于程序开发,通过这两种机制能够完善我们的程序,保证程序的实用性,对于科研竞赛就不需要过多的使用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26265.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/26265.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定