python——录入学生基本信息、打印成一张表、生成等级并计算各等级的比率
在写本系统时,我首先就想到用列表来储存数据,,用input输入数据,,
至于怎么生成等级我只是知道我应该用if判定条件来实现,,
于是就开始写代码。
一开始从最核心的输入input开始,但要输入很多,数目又没有规定,那我想到的是定义一个变量来实现
循环,不过问题来了,怎么才能使这个数是我输入数据条数的大小呢?我并没有想到很好的办法(大神知道一定告知)
,,后来想到了死循环,原来死循环可以这么用,,原谅我代码敲得少,我没有用过!!
于是就有了以下退出方法:
a=input("输入q退出!任意键继续!!")
if a.lower()=='q':
print("已退出输入!!")
break
输入搞定
接下来也是我比较头疼的——如何让列表能正确循环打印出输入的一条条数据
如何生成等级自然不是问题,给予每个阶段的数据一个字符变量即可。那么列表的循环索引是第一个数据
然而跳转数为3(因为输入学生信息有三个字段,)如何退出呢?
思来想去就只能定义一个无关变量了
于是就有了
//I的启始值为0
i=i+3
if i>=len(line_all): //当I的值等于列表line_all的长度时终止循环
break
综合下来本系统用到
1、输入输出语句
2、列表
3、进入和退出系统
4、 if条件语句
5、while循环语句
6、break和continue语句
完整代码如下:
print("----成绩评等系统----")
start=input("输入s开始录入信息:")
if start.lower() == 's':
print("请输入0-100之间的数")
line = []
line_all = []
num_all = 0
while 1:
num = input("请输入学号:")
name = input("请输入姓名:")
score = input("请输入分数:")
score = int(score)
if score > 100 or score < 0 :
print("嘿!兄弟,你走心了!!请重新输入正确分数,,")
continue
num_all = num_all+1
line = [num, name, score]
line_all = line_all+line
a=input("输入q退出!任意键继续!!")
if a.lower()=='q':
print("已退出输入!!")
break
print(line_all)
y=-2
n=2
m = -3
s = ''
i=0
e = d = c = b = a = 0
while 1:
score = int(line_all[n])
if score<60:
s = 'E'
e = e+1
elif score<70:
s = 'D'
d = d + 1
elif score < 80:
s = 'C'
c = c+1
elif score < 90:
s = 'B'
b = b+1
else:
s = 'A'
a = a+1
m = m + 3
y = y + 3
print("学号:"+line_all[m]+" "+"姓名:"+line_all[y]+" "+"等级:"+s)
n=n+3
i=i+3
if i>=len(line_all):
break
print("A等占比:",a/num_all)
print("B等占比:",b/num_all)
print("C等占比:",c/num_all)
print("D等占比:",d/num_all)
print("E等占比:",e/num_all)
信息录入:
生成学生表及各等级占比:
over!!!