学生类的使用
设计一个Student类,这个类包括 : 1) 姓名name,性别sex和成绩score三个实例数据 2) 以name,sex,score为参数的构造方法 3) 三个参数的get()方法 2,除此外再编写将字符串转化成Student类的实例的函数makestudent(studentstring) 3.做测试程序: 根据输入的数据,打印成绩最高分的信息及不及格的名单。 提示:输入多行数据,用sys模块的sys.stdin.readlines()方法实现(ctrl+D结束输入)
输入格式:
输入多行以逗号分隔开的字符串
输出格式:
打印最高分的所有数据,并且打印不及格的名单
输入样例:
在这里给出一组输入。例如:
mary,female,78
tom,male,65
susan,female,90
jack,male,23
johon,male,98
chris,female,44
zip,female,87
kiki,male,38
steven,male,58
kate,female,66
输出样例:
在这里给出相应的输出。例如:
the highest score: johon male 98.0
no pass:
jack
chris
kiki
steven
import sys
class Student():
def __init__(self, name, sex, score): # 实例属性
self.name = name
self.sex = sex
self.score = score
def get(self):
return self.name,self.sex,self.score
def makestudent(studentstring):
name, sex, score = studentstring.split(',')
return name, sex, score
inf = sys.stdin.readlines()
highest = 0
no_pass = []
all = []
for i in range(len(inf)):
name, sex, score = makestudent(inf[i].strip('\n'))
all.append(dict({'name':name, 'sex':sex, 'score':score}))
s = Student(name,sex,score)
name, sex, score = s.get()
if int(score)<60:
no_pass.append(name)
a = sorted(all, key = lambda all: all["score"], reverse=True)
print('the highest score:', a[0]['name'],a[0]['sex'],a[0]['score'])
print('no pass:')
print('\n'.join([i for i in no_pass]))