今天的学习目标:
模块化设计方法
相对而言,从大学开始接触C编程,除了算法,我觉得最重要的就是设计方法了,不管是类与对象,还是结构化编程,设计方法如果不明确,设计的程序结构混乱,也许按照随意设计的方法可以实现程序的功能,简单的程序尚可这样做,但是,如果一旦程序有上万行代码,这样的程序要维护,修改其源代码,就会非常的困难,指针问题,内存问题,调用问题等等都会出现
程序结构图,自顶向下
应用开发的四个步骤是必不可少的
1.产品定义,不仅仅需要考虑基本功能,还要考虑实用性和商用性
2.系统架构,明确应用所需要的技术是什么,要分那些模块,假如是开发物联网智能应用,就不能只考虑软件那一部分,还需要考虑电路,考虑通讯,最后到应用软件部分
3.设计与实现,开始进行编程设计,或者电路设计,还有扩展性设计,需要能够进行版本更新
4.用户体验,重中之重,这点是非常重要的,是必须要重视的,产品应用最终是服务于人,不是服务于机器
1.体育竞技分析
from random import random
def printIntro(): # 输出提示语
print("这个程序模拟两个选手A和B的某种竞技比赛")
print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
def getInputs(): # 获取输入值,A和B选手能力值,模拟比赛场数
a = eval(input("请输入选手A的能力值(0-1): "))
b = eval(input("请输入选手B的能力值(0-1): "))
n = eval(input("模拟比赛的场次: "))
return a, b, n
def simNGames(n, probA, probB): # 玩n场的赢得次数,输入能力值,输出为双方赢得次数
winsA, winsB = 0, 0
for i in range(n):
scoreA, scoreB = simOneGame(probA, probB)#玩一局之后得到得分数
if scoreA > scoreB: # 如果A大于B的得分,则A赢
winsA += 1
else:#反之,B大于A的得分,则B赢
winsB += 1
return winsA, winsB#最后返回双方赢得次数
def gameOver(a, b):
return a == 15 or b == 15
def simOneGame(probA, probB): # 玩一场的胜负,输入A和B能力值,得到双方的模拟分数
scoreA, scoreB = 0, 0
serving = "A"
while not gameOver(scoreA, scoreB): # 判断一场是否玩完,如果有一方先到15分,则一场游戏结束
if serving == "A": # A先开局
if random() < probA: # 如果随机值小于A的能力,则A得分
scoreA += 1
else: # A不得分就让B去开局
serving = "B"
else: # B开局
if random() < probB: # 如果随机值小于B的能力,则B得分
scoreB += 1
else: # B不得分就让A去开局
serving = "A"
return scoreA, scoreB
def printSummary(winsA, winsB): # 打印最终结果,输出赢得次数,输出答应语句
n = winsA + winsB
print("竞技分析开始,共模拟{}场比赛".format(n))
print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA / n))
print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB / n))
def main():
printIntro()#打印提示
probA, probB, n = getInputs()#获得输入
winsA, winsB = simNGames(n, probA, probB)#获得双方赢得场数
printSummary(winsA, winsB)#打印结果
while True:
main()
2.安装脚本
这段脚本比较简单,常用于环境配置
import os
libs = {"numpy","matplotlib","pillow","sklearn","requests",\
"jieba","beautifulsoup4","wheel","networkx","sympy",\
"pyinstaller","django","flask","werobot","pyqt5",\
"pandas","pyopengl","pypdf2","docopt","pygame"}
try:
for lib in libs:#对集合进行遍历
os.system("pip3 install "+lib)#使用os模块进行执行cmd命令,要注意空格,不能有遗漏
print("Successful")
except:
print("Failed Somehow")#否则就输出未知原因出错
版权声明:本文为felldeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。