按图施工,设计下述BMI类,用于计算身体质量指数。该指数等于体重(kg)除以身高(米)的平方。
class BMI:
def __init__(self,sName,iAge,fHeight,fWeight):
self.height=fHeight
self.weight=fWeight
self.name=sName
self.age=iAge
def getBMI(self):
c = self.weight / pow(self.height,2)
return c
def getStatus(self):
d = self.weight / pow(self.height,2)
if d < 18.5:
return "超轻"
elif ((d >= 18.5 and d <= 25) or (d >= 18.5 and d<= 24)):
return "标准"
elif ((d > 25 and d <= 30) or (d > 24 and d <= 28)):
return "超重"
elif ((d > 30) or (d > 28)):
return "肥胖"
设计一个Student类,这个类包括 : 1) 姓名name,性别sex和成绩score三个实例数据 2) 以name,sex,score为参数的构造方法 3) 三个参数的get()方法 2,除此外再编写将字符串转化成Student类的实例的函数makestudent(studentstring) 3.做测试程序: 根据输入的数据,打印成绩最高分的信息及不及格的名单。 提示:输入多行数据,用sys模块的sys.stdin.readlines()方法实现(ctrl+D结束输入)
import sys
class Student:
def __init__(self,name,sex,score):
self.name=name
self.sex=sex
self.score=score
def getName(self):
return self.name
def getSex(self):
return self.sex
def getScore(self):
return self.score
def makestudent(s):
s1=s.split("\n")
return s1
message=sys.stdin.readlines()
message=''.join(message)
message=makestudent(str(message))
max=0
maxindex=0
maxstudent=[]
score=[]
nopass=[]
for i in range(len(message)-1):
s=message[i]
num=message[i].split(",")
score.append(num[2])
if i==0 :
maxstudent=num
max=int(score[0])
maxindex=1
elif int(score[i])>max:
maxstudent=num
max=int(score[i])
maxindex=i
if(int(num[2])<60):
nopass.append(num[0])
print("the highest score: %s %s %.1f"%(maxstudent[0],maxstudent[1],float(maxstudent[2])))
print("no pass: ")
for j in range(len(nopass)):
print(nopass[j])