首页 > 后端开发 > Python教程 > 为什么Python中没有goto语句?

为什么Python中没有goto语句?

WBOY
发布: 2023-08-30 21:49:15
转载
1828 人浏览过

为什么Python中没有goto语句?

是的,Python 中没有 goto 语句。我们先来了解一下什么是C语言中的goto。然而,在 C 中也不鼓励使用 goto。

C 编程中的 goto 语句提供从“goto”到同一函数中标记语句的无条件跳转。以下是语法 -

goto label;
..
.
label: statement;
登录后复制

示例

现在让我们看看 goto 的 C 程序 -

#include <stdio.h>
int main () {
   int a = 10;
   LOOP:do {
      if( a == 15) {
         /* skip the iteration */
         a = a + 1;
         goto LOOP;
      }
      printf("a = %d\n", a);
      a++;
   }while( a < 20 );
   return 0;
}
登录后复制

输出

a = 10
a = 11
a = 12
a = 13
a = 14
a = 16
a = 17
a = 18
a = 19
登录后复制

注意 - 在 C 语言中也不鼓励使用 goto 语句。

Python 中没有 GoTo

在 Python 中,不需要 goto,因为我们可以使用 if 语句和 or、and、if-else 表达式以及使用 while 和 for 语句进行循环(包含 continue 和 break)来完成相同的任务。

用户定义的异常

使用用户定义的异常作为替代方案 -

class goto1(Exception):
   pass
class goto2(Exception):
   pass
class goto3(Exception):
   pass

def loop():
   print('start')
   num = input()
   try:
      if num<=0:
         raise goto1
      elif num<=2:
         raise goto2
      elif num<=4:
         raise goto3
      elif num<=6:
         raise goto1
      else:
         print('end')
         return 0
   except goto1 as e:
      print('goto1')
      loop()
   except goto2 as e:
      print('goto2')
      loop()
   except goto3 as e:
      print('goto3')
      loop()
登录后复制

嵌套方法

示例

使用嵌套方法作为另一种选择 -

def demo():
   print("In the demo() function")
def inline():
   print("In")
inline()
demo()
登录后复制

输出

In
In the demo() function
登录后复制

goto 语句模块

它是一个在Python中使用goto的函数装饰器。在 Python 2.6 到 3.6 和 PyPy 上进行了测试。使用 pip 安装它 -

注意:适用于 Python 3.6

pip install goto-statement
登录后复制

让我们看一个示例 

# Python 3.6
from goto import with_goto

@with_goto
def range(start, stop):
   i = start
   result = []

   label .begin
   if i == stop:
      goto .end

   result.append(i)
   i += 1
   goto .begin

   label .end
   return result
登录后复制

以上是为什么Python中没有goto语句?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板