Python 2.7:GoTo" Next"如果满足某些条件

时间:2014-01-21 12:15:13

标签: python python-2.7

我想知道是否有一种优雅的方法来创建一个使用Python的GoTo LABEL结构,例如它可以在Visual Basic上实现。我已经读过它取决于具体情况,但我们假设我有一个类似下面的循环(可执行文件):

for i in range(0,10):
    print "LOOP", i, "- DO SOMETHING ALL TIMES"
    print "LOOP", i, "- DO SOMETHING SOME TIMES"
    print "LOOP", i, "- DO SOMETHING ELSE ALL TIMES"
    print ""

我想知道的是,是否可以跳过中间指令,即print "LOOP", i, "- DO SOMETHING SOME TIMES",使用如下结构(严重模拟Visual Basic语法)应该允许脚本跳过指令“做一些事情“如果我等于3:

for i in range(0,10):
    print "LOOP", i, "- DO SOMETHING ALL TIMES"
    if i == 3: (GoTo SECONDPART)
    print "LOOP", i, "-DO SOMETHING SOME TIMES"
    SECONDPART:
    print "LOOP", i, "-DO SOMETHING ALL TIMES"

我知道我可以写if i != 3:并缩进指令“做一些事情”,但我真的很想知道是否有可能拥有(或者说是)其他语言的GoTo结构。非常感谢,我希望很清楚(如果不是毫不犹豫地问!)

3 个答案:

答案 0 :(得分:1)

实际上你可能会发现,对于相当多的情况,if语句(没有else)可以很好地发挥作用。

例如,使用您的示例

for i in range(0,10):
    print "LOOP", i, "- DO SOMETHING ALL TIMES"
    if i != 3: 
       print "LOOP", i, "-DO SOMETHING SOME TIMES"
    print "LOOP", i, "-DO SOMETHING ALL TIMES"

答案 1 :(得分:0)

python中没有goto。它甚至是过去的复活节彩蛋(他们会将goto引入python),但它从未发生过,也永远不会发生。 goto构造本身是丑陋的,大多数语言只是因为它们始于它而开始(并且它们始于它,因为每个人都这样做了)

答案 2 :(得分:0)

您可以对运行时进行反常操作,但获得什么收益?我在C中使用goto(烧掉我的赌注),但用例非常有限。

在这种情况下,您实际上无需充分理由获得额外的代码。