自上而下,分而治之
做任何事都需计划,编程也是。
譬如写文章要列大纲、作画要想布局,编程也需先谋全局,而后思虑细节。
就以上回说到的“找宝藏”这个程序举例,最顶层的需求自然就是“找宝藏”,而进行分解发现还需实现“判断是不是比神兽弱”“判断是否好运”这两个功能,接着,我们针对这两个功能也想分解,发现已经太简单,那就不需分解了。
代码:
#!/usr/bin/python
#-*-coding:UTF-8-*-
importrandom
#实现“判断是不是比神兽弱”
defisWeakerThanBeast():
iRan=random.randint(1,10)
ifiRan=9:
returnTrue
else:
returnFalse
#实现“判断是否好运”
defisLucky():
iRan=random.randint(1,10)
ifiRan=1:
returnTrue
else:
returnFalse
#实现“找宝藏”
deffindTreasure():
iCount=0
whileTrue:
iCount=iCount+1
#判断是不是比神兽弱
ifisWeakerThanBeast():
continue
#判断是否好运
ifisLucky():
break
print(str(iCount)+次找到宝藏)
#执行“找宝藏”需求
findTreasure()
运行结果:
从功能来说和上一回学的“找宝藏”程序完全一样,不一样的是我们对“找宝藏”这个需求(findTreasure)进行了自上而下的分解,最终分解出两个子需求“判断是不是比神兽弱”(isWeakerThanBeast)“判断是否好运”(isLucky)。
def是什么,跟大家简单提一句,是Python世界里定义函数的语句,而函数则实现了我们对需求的分解。
各位小萌新暂时并不需理解太多细节或者语法,只需细细体会“自上而下,分而治之”这个思路。
关于函数的好处和更多细节,且待后面再行分解。