python中class用法实例

python中class用法实例

https://blog.csdn.net/u010551600/article/details/79126911

该程序的作用是找到studet.txt文件中,GPA最高的那名同学,并打印出他的信息。
程序运行的结果是:
在这里插入图片描述
首先建立一个student.txt文件,里面存储的是学生的信息

zhangsan 127 228
lisi 100 400
wangwu 18 41.5
maliu 48.5 155
sunqi 37 125.33

#定义一个类,类的名字为Student.在__init__函数中self为对象本身,name、hours、qpoints为函数的处理所面对的对象。
#__init__函数的作用是初始化对象
#接下来定义getName函数——返回self.name对象
#getHour函数——返回self.hours对象
#getQpoints函数——返回self.qpoints对象
#gpa函数——返回self.qpoints/self.hours对象
#所以,一旦调用这些函数,将返回对应的对象

class Student:
    def __init__(self, name, hours, qpoints):
	self.name=name
	self.hours=float(hours)
	self.qpoints=float(qpoints)
	
    def getName(self):
	    return self.name
		
    def getHours(self):
	    return self.hours
		
    def getQpoints(self):
	    return self.qpoints
		
    def gpa(self):
	    return self.qpoints/self.hours

#定义一个名为makeStudent的函数
#用split函数将一个字符串分裂成多个字符串组成的列表。split()不带参数时,以空格进行分割,当带参数时,以该参数进行分割。
#当调用该函数时,用split函数分裂成3个部分,每一部分分别对应name、hours和qpoints.并把这些值进行返回。

def makeStudent(infoStr):
    name,hours,qpoints=infoStr.split(" ")
    return Student(name, hours, qpoints)

#定义主函数
#把student.txt文件映射到filename这个变量下面。打开之后的filename文件,再映射到infile变量下面。
#调用makeStudent函数(调用makeStudent函数之后返回的是3部分,分别对应name、hours和qpoints)并把返回值映射到best这个字符串之下。
#readline函数的作用是,每次读出一行内容,所以best里存放的是student中第一个学生的信息。
#for line in infile——对剩余的学生的信息进行处理,用if语句和第一个信息进行对比,如果大于第一个的话,则把它赋值给best.
#close函数,close()用于关闭一个已经打开的文件,使用close()方法关闭文件是一个好的习惯。
#print函数:print(“the best student is:”,best.getHours()是在best这个对象下调用getHours这个函数。

def main():
    filename="student.txt"
    infile=open(filename,'r')
    best=makeStudent(infile.readline())
    for line in infile:
        s=makeStudent(line)
        if s.gpa()>best.gpa():
	        best=s
    infile.close()
 
    print("The best student is:",best.getName())
    print("hours:",best.getHours())
    print("GPA:",best.gpa())

#执行该模块中的函数
#方法是:用一个if name=="main"这个语句

if __name__=='__main__':
    main()
  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值