python For While Else

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python For While Else相关的知识,希望对你有一定的参考价值。

# Python's `for` and `while` loops
# support an `else` clause that executes
# only if the loops terminates without
# hitting a `break` statement.

def contains(haystack, needle):
    """
    Throw a ValueError if `needle` not
    in `haystack`.
    """
    for item in haystack:
        if item == needle:
            break
    else:
        # The `else` here is a
        # "completion clause" that runs
        # only if the loop ran to completion
        # without hitting a `break` statement.
        raise ValueError('Needle not found')


>>> contains([23, 'needle', 0xbadc0ffee], 'needle')
None

>>> contains([23, 42, 0xbadc0ffee], 'needle')
ValueError: "Needle not found"


# Personally, I'm not a fan of the `else`
# "completion clause" in loops because
# I find it confusing. I'd rather do
# something like this:
def better_contains(haystack, needle):
    for item in haystack:
        if item == needle:
            return
    raise ValueError('Needle not found')

# Note: Typically you'd write something
# like this to do a membership test,
# which is much more Pythonic:
if needle not in haystack:
    raise ValueError('Needle not found')

以上是关于python For While Else的主要内容,如果未能解决你的问题,请参考以下文章

python,中使用while...else 和 for...else 还有try...else,另外就是运用with关键字

如何在 C# 中实现类似于 Python 的 for-else 和 while-else 的 for-else 和 foreach-else?

python For While Else

python笔记——else可与for/while搭配使用

python for,while,if-else

python基础之while循环for循环配合breakcontinue,while与elsefor与else