【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世界里定义函数的语句,而函数则实现了我们对需求的分解。
各位小萌新暂时并不需理解太多细节或者语法,只需细细体会“自上而下,分而治之”这个思路。
关于函数的好处和更多细节,且待后面再行分解。