1. 程式人生 > >python 寫函式在一定條件下需要呼叫自身時的寫法

python 寫函式在一定條件下需要呼叫自身時的寫法

例如以下這個函式:

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為為直接跳出當前函式