#PYTHON - Else statements with Loop?
本问题已经有最佳答案,请猛点这里访问。
我是一个C小伙子。这些天我在学习Python以满足我最新的项目需求。现在我的问题是:带循环的else语句的意义是什么[while,for..]。我们真的需要它们吗??
当
如果你想在循环"不成功"的情况下进行特殊处理,这实际上是相当不错的。例如,在列表中搜索数字:
1 2 3 4 5 | for testVal in listOfVals: if lookingFor == testVal: print("Found one") else: print("Not in the list") |
对于其他语言(如C),通常保留一个
1 2 3 4 5 6 7 8 9 10 | 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方法更自然。
从python while语句的else子句编辑:
The
else clause is only executed when your[Loop] 's condition becomes false. If youbreak out of the loop, or if an exception is raised, it won't be executed.
换句话说,它只是一种检查循环运行是否没有任何问题的方法,并且完成了所有被支持完成的工作。如果必须在中间执行
编辑:链接线程的一个例子很好地解释了这一点。else语句检查循环是否完全执行-如果没有中断,并且没有引发异常,则可以执行特定的操作。例如:
1 2 3 4 5 6 7 8 9 10 | ... for i in mylist: if i == theflag: break process(i) else: raise ValueError("List argument missing terminal flag.) ... |
注意,这只是为了语法。当然,你可以不使用
1 2 3 4 5 6 7 8 9 10 11 12 13 | ... 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.) ... |
但从语法上讲,第一种方法通常看起来更好。