我想知道是否有一种优雅的方法来创建一个使用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结构。非常感谢,我希望很清楚(如果不是毫不犹豫地问!)
答案 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(烧掉我的赌注),但用例非常有限。
在这种情况下,您实际上无需充分理由获得额外的代码。