第八课 需求分析
需求分析任务:
- 功能分析
- 性能分析
EG: 相应时间、主存容量、磁盘容量、安全性、等 - 可靠性和可用性
- 出错处理需求
系统发现错误时采取的行动,主要在系统关键部分设置 - 接口需求
用户接口、硬件接口、软件接口、通信接口等 - 约束
精度、工具和语言、设计约束、硬件约束、标准等 - 逆向需求
- 将来可能提出的要求
实体联系图
状态转换图
ER图
python函数:
我们知道圆的面积计算公式为:
S = r π 2
当我们知道半径 r 的值时,就可以根据公式计算出面积。假设我们需要计算 3 个不同大小的
圆的面积:
r1 = 12.34
r2 = 9.08
r3 = 73.1
s1 = 3.14 * r1 * r1
s2 = 3.14 * r2 * r2
s3 = 3.14 * r3 * r3
当代码出现有规律的重复的时候,你就需要当心了,每次写 3.14 * x * x 不仅很麻烦,而且,如果要把 3.14 改成 3.14159265359 的时候,得全部替换。
有了函数,我们就不再每次写 s = 3.14 * x * x,而是写成更有意义的函数调用 s =
area_of_circle(x),而函数 area_of_circle 本身只需要写一次,就可以多次调用。
基本上所有的高级语言都支持函数,Python 也不例外。Python 不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用。
抽象
抽象是数学中非常常见的概念。举个例子:
计算数列的和,比如:1 + 2 + 3 + … + 100,写起来十分不方便,于是数学家发明了求
和符号∑,可以把 1 + 2 + 3 + … + 100 记作:
小结
定义函数时,需要确定函数名和参数个数
如果有必要,可以先对参数的数据类型做检查;
函数体内部可以用 return 随时返回函数结果;
函数执行完毕也没有 return 语句时,自动 return None。
函数可以同时返回多个值,但其实就是一个 tuple
自定义函数的的实例:
1.源代码:
print('请输入当天行走的步数!')
step = input()
calorie = int(step)*28
print('今天共消耗卡路里:',calorie,"(即" ,calorie/1000,"千卡)")
更改为自定义函数代码:
def calories(s):
return int(s)*28
print('请输入当天行走的步数:')
s= int(input())
print('今天共消耗卡路里:',calories(s),"(即" ,calories(s)/1000,"千卡)")
2.源代码:
while True:
print('\n查询能量请输入能量来源!退出程序请输入0\n')
print('能量来源如下:\n\n'
'生活缴费、行走捐、共享单车、线下支付、网络购票\n')
info = input()
print()
if info=='生活缴费':
print('180g')
elif info == '行走捐':
print('200g')
elif info=='共享单车':
print('80g')
elif info=='线下支付':
print('5g')
elif info=='网络购票':
print('80g')
elif info=='0':
print('已退出!')
break
更改为自定义函数代码:
def energy(c):
while True:
print()
if c=='生活缴费':
return('180g')
elif c == '行走':
return('200g')
elif c=='共享单车':
return('80g')
elif c=='线下支付':
return('5g')
elif c=='网络购票':
return('80g')
elif c=='0':
return('已退出!')
break
print('\n查询能量请输入能量来源!退出程序请输入0\n')
print('能量来源如下:\n\n'
'生活缴费、行走、共享单车、线下支付、网络购票\n')
c = input()
print(energy(c))
3.源代码:
print('——————10086查询功能——————\n')
print('输入1,查询当前余额\n'
'输入2,查询当前剩余流量\n'
'输入3,查询当前剩余通话\n'
'输入0,退出自助查询系统!')
while True:
info = input() # 获取输入内容
if info == '1':
print('当前余额为:999元')
elif info == '2':
print('当前剩余流量为:5G')
elif info =='3':
print('当前剩余通话为:189分钟')
elif info == '0':
print('退出自助查询系统!')
break
更改为自定义函数代码:
def cost(money):
while True:
if money == '1':
return('当前余额为:999元')
elif money == '2':
return('当前剩余流量为:5G')
elif money == '3':
return('当前剩余通话为:189分钟')
elif money == '0':
return('退出自助查询系统!')
break
print('——————10086查询功能——————\n')
print('输入1,查询当前余额\n'
'输入2,查询当前剩余流量\n'
'输入3,查询当前剩余通话\n'
'输入0,退出自助查询系统!')
money = input()
print(cost(money))
4.源代码:
Tanks =['苏烈','刘邦','钟馗','张飞','牛魔','程咬金','白起','刘禅','庄周','项羽','廉颇','巨灵神','安禄山','猪八戒']
warriors=['狂铁','裴擒虎','铠','孙悟空','哪吒','杨戬','橘右京','亚瑟','雅典娜','夏侯惇','关羽','吕布','韩信','老夫子','达摩','典韦','曹操','钟无艳','墨子','赵云','刑天','龙且']
Assassins=['百里玄策','庞统','花木兰','阿轲(荆轲)','不知火舞','李白','娜可露露','兰陵王','露娜','韩信','宫本武藏','盖聂','红拂']
Masters =['杨玉环','弈星','女娲','周瑜','鬼谷子','芈月','干将莫邪','东皇太一','大乔','诸葛亮','貂蝉','张良','安琪拉','不知火舞','姜子牙','武则天','王昭君','甄姬','扁鹊','高渐离','嬴政','妲己','小乔']
Shooters=['公孙离','百里守约','后羿','刘备','黄忠','马可波罗','成吉思汗','虞姬','李元芳','艾琳','狄仁杰','鲁班七号','孙尚香']
auxiliarys=['明世隐','梦奇','孙膑','太乙真人','蔡文姬']
print('“王者荣耀”游戏角色:')
print('====坦克:====')
for Tank in Tanks:
print(Tank, end=' ')
print('\n====战士:====')
for warrior in warriors:
print(warrior, end=' ')
print('\n====刺客:====')
for Assassin in Assassins:
print(Assassin, end=' ')
print('\n====法师:====')
for Master in Masters:
print(Master, end=' ')
print('\n====射手:====')
for Shooter in Shooters:
print(Shooter, end=' ')
print('\n====辅助:====')
for auxiliary in auxiliarys:
print(auxiliary, end=' ')
更改为自定义函数代码:
def name(T,W,A,M,S,F):
print('====坦克:====')
for T in S:
print(S, end=' ')
print('\n====战士:====')
for B in W:
print(W, end=' ')
print('\n====刺客:====')
for E in A:
print(A, end=' ')
print('\n====法师:====')
for K in M:
print(M, end=' ')
print('\n====射手:====')
for N in S:
print(S, end=' ')
print('\n====辅助:====')
for G in A:
print(A, end=' ')
print('“王者荣耀”游戏角色:')
T='苏烈','刘邦','钟馗','张飞','牛魔','程咬金','白起','刘禅','庄周','项羽','廉颇','巨灵神','安禄山','猪八戒'
W='狂铁','裴擒虎','铠','孙悟空','哪吒','杨戬','橘右京','亚瑟','雅典娜','夏侯惇','关羽','吕布','韩信','老夫子','达摩','典韦','曹操','钟无艳','墨子','赵云','刑天','龙且'
A='百里玄策','庞统','花木兰','阿轲(荆轲)','不知火舞','李白','娜可露露','兰陵王','露娜','韩信','宫本武藏','盖聂','红拂'
M='杨玉环','弈星','女娲','周瑜','鬼谷子','芈月','干将莫邪','东皇太一','大乔','诸葛亮','貂蝉','张良','安琪拉','不知火舞','姜子牙','武则天','王昭君','甄姬','扁鹊','高渐离','嬴政','妲己','小乔'
S='公孙离','百里守约','后羿','刘备','黄忠','马可波罗','成吉思汗','虞姬','李元芳','艾琳','狄仁杰','鲁班七号','孙尚香'
F='明世隐','梦奇','孙膑','太乙真人','蔡文姬'
print(name(T,W,A,M,S,F))
从登陆页面进入操作页面 的状态转换图