亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問我該如何在python中實現goto功能?

請問我該如何在python中實現goto功能?

慕尼黑5688855 2021-09-21 14:10:53
假如:#50# S3=...........(一個賦值行為)#60# for............(這里有個三重循環)##三重循環結束##if ((L-1)==0):L=0goto 60··else:if (S3>S2):goto 50我要實現goto的功能,請問在不安裝第三方庫的前提下如何實現?
查看完整描述

2 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

一、具體用法

首先安裝一個 goto 的包(因為官方是沒有 goto 語句的)

pip install goto-statement

具體的語法--注意: 對需要使用goto的函數,前面加個@patch

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

二、原理解析

原理:通過給所有函數修改trace,然后在異常時就會執行設置的函數。

sys.settrace(_trace)

frame = sys._getframe().f_back

while frame:

frame.f_trace = _trace

frame = frame.f_back


擴展資料:

Goto語句與結構化程序設計

goto語句問題的提出直接推動了結構化程序設計(structuredprogramming)的思想和程序設計方法學的誕生和發展。結構化程序設計方法引入了工程思想和結構化思想,使大型軟件的開發和編程都得到了極大的改善。

結構化程序設計方法的主要原則可以概括為自頂向下,逐步求精,模塊化,限制使用goto語句。

1.自頂向下:程序設計時,應先考慮總體,后考慮細節;先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節,先從最上層總目標開始設計,逐步使問題具體化。

2.逐步求精:對復雜問題,應設計一些子目標作為過渡,逐步細化。

3.模塊化:一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為子目標,再進一步分解為具體的小目標,把每一個小目標稱為一個模塊。

4.限制使用goto語句

結構化程序設計方法的起源來自對goto語句的認識和爭論??隙ǖ慕Y論是,在塊和進程的非正常出口處往往需要用goto語句,使用goto語句會使程序執行效率較高;在合成程序目標時,goto語句往往是有用的,如返回語句用goto。

否定的結論是,goto語句是有害的,是造成程序混亂的禍根,程序的質量與goto語句的數量成反比,應該在所有高級程序設計語言中取消goto語句。取消goto語句后,程序易于理解、易于排錯、容易維護,容易進行正確性證明。作為爭論的結論,1974年Knuth發表了令人信服的總結,并證實了:

(1)goto語句確實有害,應當盡量避免;

(2)完全避免使用goto語句也并非是個明智的方法,有些地方使用goto語句,會使程序流程更清楚、效率更高。

(3)爭論的焦點不應該放在是否取消goto語句上,而應該放在用什么樣的程序結構上。其中最關鍵的是,應在以提高程序清晰性為目標的結構化方法中限制使用goto語句



查看完整回答
反對 回復 2021-09-23
  • 2 回答
  • 0 關注
  • 319 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號