python 寫函式在一定條件下需要呼叫自身時的寫法
阿新 • • 發佈:2018-12-15
例如以下這個函式:
state = 1 def set_state(state): while state: set = int(input('請輸入9或5,顯示"hello world"\n')) if set == 9 or set == 5: print('hello world') state = int(input('輸入1繼續,輸入0停止!\n')) else: print('請輸入要求的值!') set_state(state) # break set_state(state) print('end')
這個函式設計的目的是讓使用者輸入指定的值,若輸入的值並非指定值,則重新輸入。
不寫break,執行時就會出現錯誤,乍一看正確:
但:
此時箭頭所指的地方,所輸入的0傳給了其他條件下,第二次執行函式時的狀態下,第一個狀態仍為1,並未改變,因此在退出了第二次執行的函式後,仍然會繼續執行第一個函式中state = 1的迴圈,導致還得再次輸入0去改變state的值才能停止執行
因此,在再次呼叫該函式的語句後面,應該加一句breaK語句,直接退出當前的迴圈,避免出現函式執行的效果達不到預期效果,
加入break以後的截圖:
break為跳出本層迴圈,隻影響一層
continue為跳出本次迴圈,進行下一次迴圈
return為為直接跳出當前函式