jmu-python-统计成绩 输入一批学生成绩,计算平均成绩,并统计不及格学生人数。
接下来我们引入题目
①很多同学看到“每行输入一个数据,输入数据为负数结束输入”时会不知所措,怎么办?
在这里我们引入while的死循环
i=1
while i :
print(i+1)
由于while循环具有重复执行的特点,如果条件表达式的值为True。这段代码中,循环的条件 i 的值一直是1,所以循环的条件一直为True,则循环会一直执行,永远不会结束。
所以为了满足输入数据为负数结束输入我们有以下操作:
while 1:
n=int(input())
if n<0:
break
这样我们就解决了输入的问题
②那么如何求平均分,以及不及格的人数呢?我们在这里引入列表
我们先将输入的数据放在一个列表里方便我们以后的处理
lst=[]
while 1:
n=int(input())
if n<0:
break
lst.append(n)
ave=sum(lst)/len(lst)#平均分
lst1=[]
for i in lst:
if i<60:#不及格人数
lst1.append(i)
fail=len(lst1)
其中 len函数 在这里不加以说明
③最后我们在考虑如果没有学生数据,输出没有学生
这时想必大家会想到 if else那么完整代码如下
lst=[]
while 1:
n=int(input())
if n<0:
break
lst.append(n)
if len(lst)==0:
print("没有学生")
else:
ave=sum(lst)/len(lst)#平均分
lst1=[]
for i in lst:
if i<60:#不及格人数
lst1.append(i)
fail=len(lst1)
print("平均分={:.2f},不及格人数={}".format(ave,fail))
《python实战编程:从零学python》