【Python小短課 11】自上而下,分而治之
做任何事都需計劃,編程也是。
譬如寫文章要列大綱、作畫要想布局,編程也需先謀全局,而后思慮細節。
就以上回說到的“找寶藏”這個程序舉例,最頂層的需求自然就是“找寶藏”,而進行分解發現還需實現“判斷是不是比神獸弱”“判斷是否好運”這兩個功能,接著,我們針對這兩個功能也想分解,發現已經太簡單,那就不需分解了。
代碼:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import random
#實現“判斷是不是比神獸弱”
def isWeakerThanBeast ():
iRan = random.randint(1,10)
if iRan<=9:
return True
else:
return False
#實現“判斷是否好運”
def isLucky ():
iRan = random.randint(1,10)
if iRan<=1:
return True
else:
return False
#實現“找寶藏”
def findTreasure ():
iCount = 0
while True:
iCount = iCount + 1
#判斷是不是比神獸弱
if isWeakerThanBeast():
continue
#判斷是否好運
if isLucky():
break
print(str(iCount)+"次找到寶藏")
#執行“找寶藏”需求
findTreasure()
運行結果:
從功能來說和上一回學的“找寶藏”程序完全一樣,不一樣的是我們對“找寶藏”這個需求(findTreasure)進行了自上而下的分解,最終分解出兩個子需求“判斷是不是比神獸弱”(isWeakerThanBeast)“判斷是否好運”(isLucky)。
def是什么,跟大家簡單提一句,是Python世界里定義函數的語句,而函數則實現了我們對需求的分解。
各位小萌新暫時并不需理解太多細節或者語法,只需細細體會“自上而下,分而治之”這個思路。
關于函數的好處和更多細節,且待后面再行分解。