我是C家伙。这些天我正在学习python以满足我最新的项目要求。 现在我的问题是:带有循环的Else语句的意义是什么[While,For ..]。我们真的需要它们吗?
答案 0 :(得分:0)
从Else clause on Python while statement编辑:
else
子句仅在[Loop]
条件变为false时执行。如果您break
退出循环,或者引发异常,则不会执行。
换句话说,它只是一种检查循环是否运行没有任何问题的方法,并且完成了所有必须完成的操作。如果你必须在中间有break
或throw
例外,那么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方法对我来说似乎更自然。