你能找到使用 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]