python goto 40 60_python goto 包

#Example 1: Breaking out from a deeply nested loop:

from goto importgoto, labelfor i in range(1, 10):for j in range(1, 20):for k in range(1, 30):printi, j, kif k == 3:

goto .end

label .endprint "Finished\n"

#Example 2: Restarting a loop:

from goto importgoto, label

label .startfor i in range(1, 4):printiif i == 2:try:

output=messageexceptNameError:print "Oops - forgot to define ‘message‘! Start again."message= "Hello world"goto .startprint output, "\n"

#Example 3: Cleaning up after something fails:

from goto importgoto, label#Imagine that these are real worker functions.

def setUp(): print "setUp"

def doFirstTask(): print 1; returnTruedef doSecondTask(): print 2; returnTruedef doThirdTask(): print 3; return False #This one pretends to fail.

def doFourthTask(): print 4; returnTruedef cleanUp(): print "cleanUp"

#This prints "setUp, 1, 2, 3, cleanUp" - no "4" because doThirdTask fails.

defbigFunction1():

setUp()if notdoFirstTask():

goto .cleanupif notdoSecondTask():

goto .cleanupif notdoThirdTask():

goto .cleanupif notdoFourthTask():

goto .cleanup

label .cleanup

cleanUp()

bigFunction1()print "bigFunction1 done\n"

#Example 4: Using comefrom to let the cleanup code take control itself.

from goto importcomefrom, labeldefbigFunction2():

setUp()if notdoFirstTask():

label .failedif notdoSecondTask():

label .failedif notdoThirdTask():

label .failedif notdoFourthTask():

label .failed

comefrom .failed

cleanUp()

bigFunction2()print "bigFunction2 done\n"

#Example 5: Using a computed goto:

from goto importgoto, label

label .getinput

i= raw_input("Enter either ‘a‘, ‘b‘ or ‘c‘, or any other letter to quit:")if i in (‘a‘, ‘b‘, ‘c‘):

goto*ielse:

goto .quit

label .aprint "You typed ‘a‘"goto .getinput

label .bprint "You typed ‘b‘"goto .getinput

label .cprint "You typed ‘c‘"goto .getinput

label .quitprint "Finished\n"

#Example 6: What happens when a label is missing:

from goto importgoto, label

label .real

goto .unreal#Raises a MissingLabelError exception.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值