#PYTHON - 使用Loop的其他语句?

时间:2015-12-29 07:41:39

标签: python loops if-statement

我是C家伙。这些天我正在学习python以满足我最新的项目要求。 现在我的问题是:带有循环的Else语句的意义是什么[While,For ..]。我们真的需要它们吗?

2 个答案:

答案 0 :(得分:0)

Else clause on Python while statement编辑:

  

else子句仅在[Loop]条件变为false时执行。如果您break退出循环,或者引发异常,则不会执行。

换句话说,它只是一种检查循环是否运行没有任何问题的方法,并且完成了所有必须完成的操作。如果你必须在中间有breakthrow例外,那么else语句不会执行,因为循环没有完成&#34;正确&#34;。< / p>

编辑:来自链接线程的示例很好地解释了这一点。 else语句检查循环是否已完成完全 - 如果它没有被破坏并且没有引发异常,则可以执行某个操作。例如:

...

for i in mylist:
    if i == theflag:
        break
    process(i)
else:
    raise ValueError("List argument missing terminal flag.)

...

请注意,这仅仅是为了语法。当然,您可以在没有for-else语句的情况下执行此操作,如下所示:

...

flagfound = False
for i in mylist:
    if i == the flag:
        flagfound = True
        break
    process(i)

if not flagfound:
    raise ValueError("List argument missing terminal flag.)

...

语法明智,第一种方式通常看起来更好。

答案 1 :(得分:0)

Python可以在for循环耗尽其列表或while循环变为false时执行代码。

如果你想要在循环“不成功”时进行特殊处理,那真的很不错。例如,在列表中搜索数字:

for testVal in listOfVals:
    if lookingFor == testVal:
        print("Found one")
else:
    print("Not in the list")

使用其他语言(例如C)时,通常会保留一个found布尔变量来指示它已找到,然后在循环后检查该变量,如:

int found = 0;
for (int i = 0; i < size; i++) {
    if (lookingFor == listOfVals[i]) {
        puts ("Found one")
        found = 1;
    }
}
if (!found) {
    puts ("Not in the list")
}

可能还有其他方法可以在C中实现相同的目的,但Python方法对我来说似乎更自然。