Python软件开发之需求实现:数据结构、数据类型。自动化测试必会

需求:判断学生成绩是否及格

遇到这样的需求你如何去进行需求分析,如何将它转化成代码呢?


需求分析阶段:

(一)看到这样的一句话之后我们有几个问题需求和产品经理确认的:

1.什么样的算及格?60-70分算及格

2.判断的是什么成绩?数学,语文,英语

3.是否需要判断不及格,良好,优秀?是的情况下,不及格,良好和优秀的标准是什么?

不及格0-59,良好70-80,优秀80分以上

(二)了解完以上之后我们就可以写代码了吗?答案是no。需要进一步的去拆分需求,如何拆分呢,我们把它转化成界面原型的,这样有利于帮助我们进一步的进行需求的分析


Python软件开发之需求实现:数据结构、数据类型。自动化测试必会

(1)看到这样的原型图,想到了什么?是不是输入框的规则是什么?

每一个输入框:

(1.1)是否允许为空。不能为空

(1.2)是否允许重复。允许重复

(1.3)是否允许为负数。允许负数

(1.4)是否允许小数。允许小数

(1.5)是否允许非数字:字母,字符,汉字。不允许非数字

(2)提交的时候包含哪些功能实现?

(2.1)计算和判断

(3)计算如何实现?例如三个数为a,b,c 求和之后再求平均数,简单吧,小学生都会 。

(a+b+c)/3

(4)判断如何实现?

设计到判断的为了更明确同样的可以把它转为流程图:如下


Python软件开发之需求实现:数据结构、数据类型。自动化测试必会

以上分析完之后,如何用python代码进行实现呢?如何把它转化为计算机认识的语言

1.三个输入框。

(1.1)程序中输入用 :input()

(1.2)输入完之后得有地方存放输入的这个值怎么做,起个名呗,a=input("输入的时候加个提示")

(1.3)语文,数学,英语,三个数,那么就写三个:

num1=input("请输入语文成绩")

num2=input("请输入数学成绩")

num3=input("请输入英语成绩")

2.计算:avg=(num1+num2+num3)/3

3.判断用什么?

if 条件:

输出结果

elif条件:

输出结果

else:

输出结果

(1)条件为上图菱形的判定框中的表达式:0<=avg<60

(2)输出用:print("提示")

(3)转为计算机程序为如下

<code>if 0<=avg<60:
print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("良好")
elif 81<=avg<=100:
print("优秀")/<code>

根据以上的分析内容,把代码拷贝到Pycharm编辑器去执行一下看看

一、前提:安装python,安装pycharm编辑器

二、打开pycharm,file--new---python file,名字要见名知意增强可读性

<code>num1=input("请输入语文成绩")

num2=input("请输入数学成绩")

num3=input("请输入英语成绩")

avg=(num1+num2+num3)/3


if 0<=avg<60:
print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("良好")
elif 81<=avg<=100:
print("优秀")/<code>

三、右键run,运行后结果报错,为什么?

1.因为在python 中 input() 输入的数据类型为字符串类型(str)

2.可以在输入后加一个print(type(num1)),查看一下改变量的数据类型

3.怎么办呢?强制类型转化为数字型 按照错误提示修改程序。#注意python中除了引号引起来的内容,其他的全部为英文,尤其是()要注意用英文的

<code>num1=int(input("请输入语文成绩"))

num2=int(input("请输入数学成绩"))

num3=int(input("请输入英语成绩"))

avg=(num1+num2+num3)/3

if 0<=avg<60:
print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("良好")
elif 81<=avg<=100:

print("优秀")
/<code>

4.run 不会报错了

四、输入小数怎么办?以上的输入是int型的,输入5.99小数同样会报错。那么我们把它变为小数float类型的

<code>num1=float(input("请输入语文成绩"))
num2=float(input("请输入数学成绩"))
num3=float(input("请输入英语成绩"))
avg=(num1+num2+num3)/3
if 0<=avg<60:
print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("良好")
elif 81<=avg<=100:
print("优秀")/<code>

五、输入非数字会报错怎么办?

<code>while True:
try:
num1=float(input("输入语文成绩:"))#数据类型 str 字符串类 abc 中 ,int 整型 1.3 float
num2=float(input("输入数学成绩:"))
num3=float(input("输入英语成绩:"))
break #结束循环
except(ValueError):
print("您输入的不是数字,请重新输入")#1.界面上的提示是否清晰明确
if 0<=avg<60:

print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("优秀")
elif 81<=avg<=100:
print("良好")
else:
print("您输入的数字不在范围内")/<code>

通过以上的功能实现,我们熟悉了数据类型:int,float,str用在什么时候;数据结构:while循环和分支。最后建议大家在学习Python是不要死学语法、数据结构、数据类型等基础。结合要实现的功能来学习会感觉容易很多。


分享到:


相關文章: