【问题标题】:Simple Python Q: idk what produces None when this code's executed简单的 Python Q:idk 执行此代码时产生 None 的原因
【发布时间】:2017-05-11 23:16:01
【问题描述】:

我只是通过阅读一本书来学习 Python,下面的代码用于显示 try 和 except 命令。这些是有道理的,但我的问题是关于输出的。执行时,sp​​am(0) 产生错误后,它会在下一行显示 None,然后是 42。None 来自哪里?

def spam(divideBy):
    try:
        return 42 / divideBy
    except ZeroDivisionError:
        print('Error')

print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))

【问题讨论】:

    标签: python try-catch except


    【解决方案1】:

    在 Python 中,没有 return 语句的函数返回 None。所以异常被捕获并且函数返回,然后下一行执行。

    如果except 块再次引发异常,则函数不会返回,而是会引发异常。

    【讨论】:

    • 啊,我学到了最后一章,但是因为垃圾邮件是用返回语句定义的,所以被抛弃了。感谢您为我解决这个问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多