微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

你能找到使用 try / except 的偶数问题吗?

如何解决你能找到使用 try / except 的偶数问题吗?

我不明白这件事:

list1 = [34,2,1,3,33,100,61,1800]

for n in list1:
    try:
        n%2 == 0
        print(n)
    except:
        pass

上面代码输出显示了每个数字,但我只需要偶数。 我的错误是什么?

解决方法

我怀疑您在某处遗漏了一个基本概念。 try / except 用于捕获错误。为了以您尝试的方式使用它,您需要在某些情况下导致错误。一种简单的方法是 assert 数字为偶数。 assert n % 2 == 0 表示如果 n 不是偶数,则引发异常。然后您可以捕获异常并使用 pass

跳过它
list1 = [34,2,1,3,33,100,61,1800]

for n in list1:
    try:
        assert n % 2 == 0 # cause an error if `n` is not even
        print(n)
    except AssertionError:
        pass
,

您缺少条件 if

list1 = [34,1800]

for n in list1:
    try:
        if n%2 == 0:
            print(n)
    except:
        pass
,

两件事。您在执行 n%2 之前忘记了 if 语句 第二件事是,尝试和除外的意义何在。你不需要它。 以下是您的代码示例

列表理解

list1 = [34,1800]
even = [n for n in list1 if n%2 == 0]

输出

[34,1800]

简化代码

list1 = [34,1800]
even = []
for n in list1:
    if n%2 == 0:
        even.append(n)

输出

[34,1800]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。