python 寫函數(shù)在一定條件下需要調(diào)用自身時(shí)的寫法說(shuō)明
例如以下這個(gè)函數(shù):
state = 1def set_state(state): while state: set = int(input(’請(qǐng)輸入9或5,顯示'hello world'n’)) if set == 9 or set == 5: print(’hello world’) state = int(input(’輸入1繼續(xù),輸入0停止!n’)) else: print(’請(qǐng)輸入要求的值!’) set_state(state) # breakset_state(state)print(’end’)
這個(gè)函數(shù)設(shè)計(jì)的目的是讓用戶輸入指定的值,若輸入的值并非指定值,則重新輸入。
不寫break,運(yùn)行時(shí)就會(huì)出現(xiàn)錯(cuò)誤,乍一看正確:
但:
此時(shí)箭頭所指的地方,所輸入的0傳給了其他條件下,第二次運(yùn)行函數(shù)時(shí)的狀態(tài)下,第一個(gè)狀態(tài)仍為1,并未改變,因此在退出了第二次運(yùn)行的函數(shù)后,仍然會(huì)繼續(xù)運(yùn)行第一個(gè)函數(shù)中state = 1的循環(huán),導(dǎo)致還得再次輸入0去改變state的值才能停止運(yùn)行
因此,在再次調(diào)用該函數(shù)的語(yǔ)句后面,應(yīng)該加一句breaK語(yǔ)句,直接退出當(dāng)前的循環(huán),避免出現(xiàn)函數(shù)執(zhí)行的效果達(dá)不到預(yù)期效果,
加入break以后的截圖:
break為跳出本層循環(huán),只影響一層
continue為跳出本次循環(huán),進(jìn)行下一次循環(huán)
return為為直接跳出當(dāng)前函數(shù)
補(bǔ)充知識(shí):在python中調(diào)用自己寫的方法或函數(shù)function
一、在command中調(diào)用
1 在終端里先用 cd 指令到指定路徑(D盤)
2 切到 python 交互環(huán)境下,輸入 import myfunc (如果 myfunc.py 是你的文件全名的話)
>>> import myfunc
3 輸入 myfunc.函數(shù)名(參數(shù))
二、在IDE編輯器中調(diào)用
import sys sys.path.append(r’D:’)import mymodulemymodule.function()
如
import syssys.path.append(’C:UsersusernamePycharmProjectsuntitledstudy_some’)import list#調(diào)用list.print_l(movies)
以上這篇python 寫函數(shù)在一定條件下需要調(diào)用自身時(shí)的寫法說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. PHP設(shè)計(jì)模式中工廠模式深入詳解2. PHP循環(huán)與分支知識(shí)點(diǎn)梳理3. xpath簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理4. 詳細(xì)分析css float 屬性以及position:absolute 的區(qū)別5. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)6. 得到XML文檔大小的方法7. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))8. ASP中格式化時(shí)間短日期補(bǔ)0變兩位長(zhǎng)日期的方法9. ASP實(shí)現(xiàn)加法驗(yàn)證碼10. ASP基礎(chǔ)知識(shí)Command對(duì)象講解
