当前位置: 首页 > 面试题库 >

相当于python中的GOTO

栾鸣
2023-03-14
问题内容

我正在自学python 2.7。我在使用具有GOTO语句的BATCH方面有一些经验。我该如何在python中做到这一点?例如,假设我想从第5行跳到第18行。

我意识到以前有关于此主题的问题,但是我发现它们没有足够的信息,或者对于我目前的理解而言,在python中的水平太高了。


问题答案:

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

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

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

例如,让我们假设Python有一个goto和对应的label语句 shudder 。看下面的代码。如果数字大于或等于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"

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

相比较而言,下面是你如何 在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)



 类似资料:
  • 问题内容: 我知道(其中e是一个异常)会打印发生的异常,但是,我试图找到与Java等效的python,它可以将异常确切地跟踪到发生的那一行,并打印出整个轨迹。 谁能告诉我Python 的等效功能吗? 问题答案: 在块内执行此操作时,它将自动使用当前异常。有关更多信息,请参见http://docs.python.org/library/traceback.html。

  • 问题内容: 我在php中将以下语句转换为。 我需要在另一个程序中做同样的事情吗? 有任何想法吗 ? 干杯, 问题答案: 该模块具有,它可以满足您的需求。

  • 问题内容: 我想要一个模仿python .format()函数的javascript函数,其功能类似于 前面的问题为’.format(* args)提供了一种可能的(但不完整的)解决方案 相当于printf / string.format的JavaScript 我想能够做 我意识到这是一个艰巨的任务,但是也许在某个地方有一个完整的(或至少是部分的)解决方案,其中也包含关键字参数。 哦,我听说AJA

  • 问题内容: 是否有Python类或模块实现类似于BitSet的结构? 问题答案: 标准库中没有任何内容。尝试: http://pypi.python.org/pypi/bitarray

  • 问题内容: 是否有等效于python for Java中的“ dir”或提供类似功能(即,对象和类的属性以信息字符串形式输出)的库? 这个问题类似于clojure的这个问题,并且可能与此问题类似,与Java反射有关,这似乎是一个更复杂但相似的话题。 问题答案: 没有什么在完成标准库的 究竟 是什么,但你可以得到使用相同的信息。具体来说,有关发现类成员的文档中说明了调查和发现类成员的方法。使用该AP

  • 问题内容: 我是Python的长期用户,并且非常喜欢使用字典的方式。它们非常直观且易于使用。是否有与python字典等效的Java?我听说有人在使用哈希图和哈希表。有人可以解释使用哈希表和哈希图与python字典的异同吗? 问题答案: Python的类是Python文档非正式地称为“ 映射类型 ”的实现。在内部,使用哈希表实现。 Java的类是接口的实现。在内部,使用哈希表实现。 语法上有一些细微