栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

相当于python中的GOTO

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

相当于python中的GOTO

Goto
s在计算机科学和编程中普遍受到指责,因为它们会导致非常非结构化的代码。

Python(像当今几乎所有编程语言一样)都支持结构化编程,该结构使用if
/ then / else,循环和子例程控制流。

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

例如,让我们假设Python有一个

goto
和对应的
label
语句 shudder 。看下面的代码。如果数字大于或等于0,则在其中打印

number = input()if number < 0: goto negativeif number % 2 == 0:   print "even"else:   print "odd"goto endlabel: negativeprint "negative"label: endprint "all done"

如果我们想知道何时执行一段代码,则需要仔细地在程序中进行追溯,并检查标签是如何到达的-这实际上是做不到的。

例如,我们可以将以上内容重写为:

number = input()goto checklabel: negativeprint "negative"goto endlabel: checkif number < 0: goto negativeif number % 2 == 0:   print "even"else:   print "odd"goto endlabel: endprint "all done"

在这里,有两种可能的方法可以到达“终点”,我们不知道选择了哪一个。随着程序变大,这种问题变得更加严重,并导致产生意粉代码

相比较而言,下面是你如何 在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"
当a时将运行该行
((number >= 0) == True) and ((number % 2 == 0) == False)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639277.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号