首頁 > 後端開發 > Python教學 > 為什麼Python中沒有goto語句?

為什麼Python中沒有goto語句?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2023-08-30 21:49:15
轉載
1922 人瀏覽過

為什麼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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
javascript - 工單流程是怎麼控制的?
來自於 1970-01-01 08:00:00
0
0
0
控制台的touch?
來自於 1970-01-01 08:00:00
0
0
0
php - laravel 控制器中呼叫python文件
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板