栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 之异常处理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 之异常处理

def spam(divisor):
    return 42 / divisor


print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))
21.0
3.5
Traceback (most recent call last):
  File "C:/Users/mary/PycharmProjects/test/zerodivide.py", line 7, in 
    print(spam(0))
  File "C:/Users/mary/PycharmProjects/test/zerodivide.py", line 2, in spam
    return 42 / divisor
ZeroDivisionError: division by zero

当试图用一个数除以零时,就会发生 ZeroDivisionError。

错误可以由 try 和 except 语句来处理。那些可能出错的语句被放在 try 子句中。如果错误发生,程序执行就转到接下来的 except 子句开始处。

def spam(divisor):
    try:
        return 42 / divisor
    except ZeroDivisionError:
        print('Error: Invalid argument.')


print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))
21.0
3.5
Error: Invalid argument.
None
42.0

在函数调用中的 try 语句块中,发生的所有错误都会被捕捉。

在下面的程序中,做法有所不同,将 spam() 调用放在语句块中:

def spam(divisor):
    return 42 / divisor


try:
    print(spam(2))
    print(spam(12))
    print(spam(0))
    print(spam(1))
except ZeroDivisionError:
    print('Error: Invalid argument.')
21.0
3.5
Error: Invalid argument.

print(spam(1)) 从未被执行是因为,一旦执行跳到 except 子句的代码,就不会回到 try 子句,它会继续向下执行。

None 值
在 python 中有一个值成为 None,它表示没有值。None 是 NoneType 数据类型的唯一值。
如果你希望变量中存储的东西不会与一个真正的值混淆,可以使用 None 值。
有一个使用 None 的地方就是 print() 的返回值。print() 函数在屏幕上显示文本,但它不需要返回任何值,这和 len() 和 input() 不同。但既然所有函数调用都需要求值为一个返回值,那么 print() 就返回 None。

>>> spam = print("hello")
hello
>>> None == spam
True

对于所有没有 return 语句的函数定义,python 都会在末尾加上 return None。
而且,如果使用不带值的 return 语句,那么就返回 None。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308710.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号