python中goto(0、0)的意思_相当于python中的GOTO

Gotos在计算机科学和编程中普遍受到抨击,因为它们导致非常非结构化的代码。

Python(和现在几乎所有的编程语言一样)支持structured programming,它使用if/then/else、循环和子例程控制流。

以结构化的方式思考的关键是理解如何以及为什么在代码上进行分支。

例如,让我们假设Python有一个goto和相应的label语句。请看下面的代码。如果一个数字大于或等于0,我们会打印number = input()

if number < 0: goto negative

if number % 2 == 0:

print "even"

else:

print "odd"

goto end

label: negative

print "negative"

label: end

print "all done"

如果我们想知道一段代码何时被执行,我们需要仔细地在程序中进行回溯,并检查标签是如何到达的——这是不可能真正做到的。

例如,我们可以将上述内容重写为:number = input()

goto check

label: negative

print "negative"

goto end

label: check

if number < 0: goto negative

if number % 2 == 0:

print "even"

else:

print "odd"

goto end

label: end

print "all done"

在这里,有两种可能的方法可以达到“结束”,我们不知道选择了哪一种。当程序变大时,这种问题会变得更糟,并导致spaghetti code

相比之下,下面是您如何用Python编写这个程序:number = input()

if number >= 0:

if number % 2 == 0:

print "even"

else:

print "odd"

else:

print "negative"

print "all done"

我可以查看一行特定的代码,并通过追溯它所在的if/then/else块的树来知道在什么条件下满足它。例如,我知道print "odd"行将在((number >= 0) == True) and ((number % 2 == 0) == False)时运行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值