实验5 类和对象(python)

  1.  编写程序, 编写一个学生类, 要求有一个计数器的属性, 统计总共实例化了多少个学生.

【程序分析】

  1. 定义一个学生类
  2. 定义一个类属性count
  3. 类的初始化(__init__(self, name, age))
  4. 实例化类(自己定义几个)
  5. 打印输出共实例化了几个学生。
class student:
    count = 0
    def __init__(self,name,age):
        self.name = name
        self.age = age
        student.count += 1
stu1 = student("张钊","18")
stu2 = student("李贺", "19")
stu3 = student("李宇贺", "19")
print("共实例化了%d个学生"%(student.count))







结果:
共实例化了3个学生

2. 编写程序, A 继承了 B, 两个类都实现了 handle 方法, 在 A 中的 handle 方法中调用 B 的 handle 方法。

class B:
    def handle(self):
        print("类B的handle方法")

class A(B):
    def handle(self):
        B.handle(self)
        print("类A的handle方法")

a = A()
a.handle()



结果:
类B的handle方法
类A的handle方法

3.编写程序,创建类Mymath,计算圆的周长和面积以及球的表面积和体积,并编写测试代码,结果均保留两位小数。

import math
class Mymath: 
  def __init__(self,r): 
    self.r=r
  def G(self,r): 
    return '%.2f'%(2*math.pi*self.r)
  def A(self,r):  
    return '%.2f'%(math.pi*self.r*self.r)
  def S(self,r): 
    return '%.2f'%(4*math.pi*self.r*self.r)
  def V(self,r): 
    return  '%.2f'%(4/3*math.pi*math.pow(self.r,3))
r=float(input("请输入半径:")) 
R=Mymath(r)  
print("圆的周长=",R.G(r))
print("圆的面积=",R.A(r))
print("球的表面积=",R.S(r))
print("球的体积=",R.V(r))   

结果:
请输入半径:2
圆的周长= 12.57
圆的面积= 12.57
球的表面积= 50.27
球的体积= 33.51

4. 编写程序,创建类Temperature,其包含成员变量degree(表示温度)以及实例方法ToFahrenhrit( )(将摄氏温度转换为华氏温度)和ToCelsius( )(将华氏温度转换为摄氏温度),并编写测试代码。

class Temperature:
  def __init__(self,degree): 
    self.degree=degree
  def ToFahrenhrit(degree):
    degree = float(degree)
    degree1 = (degree * 9/5) + 32
    return degree1
  def ToCelsius(degree1): 
    degree1 = float(degree1)
    degree = (degree1 - 32) * 5 /9
    return degree
print("1.从摄氏温度到华氏温度.")
print("2.从华氏温度到摄氏温度.")
choice=float(input("请选择转换方向:"))
if choice==1:
    degree=float(input("请输入摄氏温度:")) #实例
    F=Temperature.ToFahrenhrit(degree)
    print("摄氏温度={0},华氏温度={1}".format(degree,F))
elif  choice==2:
    degree1=float(input("请输入华氏温度:")) #实例
    C=Temperature.ToCelsius(degree1)
    print("华氏温度={0},摄氏温度={1}".format(degree1,C))
else:
    print("无此选项,只能选择1或2")
    
    
结果:
1.从摄氏温度到华氏温度.
2.从华氏温度到摄氏温度.

请选择转换方向:1

请输入摄氏温度:37
摄氏温度=37.0,华氏温度=98.6

5.编写程序, 设计一个学生类。这个学生类中包含学生的学号、姓名和成绩。计算3名学生的成绩平均分。(三名学生的信息:学号:a1001,姓名:张三,成绩:92。学号:a1002,姓名:李四,成绩:82。学号:a1003,姓名:王五,成绩:97。)

class Student(object):
    def __init__(self, number,name,scores):
        self.number = number 
        self.name = name           
        self.scores = scores  
stu1 = Student("a1001","张三",92)
stu2 = Student("a1002","李四",82)
stu3 = Student("a1003","王五",97)
print("3名学生的成绩平均分:%.2f"%((stu1.scores+stu2.scores+stu3.scores)/3))



结果:
3名学生的成绩平均分:90.33

6. 编写程序,按照一下要求定义一个游乐园门票类,并尝试计算2个成人+1个小孩子平日票价。

要求:1.平日票价100元 2.周末票价为平日票价120% 3.儿童半价

class Ticket:
    def __init__(self,w=True,a=True):
        self.price=100
        if w:
            self.ratio=1
        else:
            self.ratio=1.2
        if a:
            self.discount=1
        else:
            self.discount=0.5
    def get_price(self,num):
        return self.price*self.ratio*self.discount*num
a1=Ticket(w=True,a=True)
c1=Ticket(w=True,a=False)
print("2个成人+1个小孩平日票价为:%.2f" %(a1.get_price(2)+c1.get_price(1)))
a2=Ticket(w=False,a=True)
c2=Ticket(w=False,a=False)
print("2个成人+1个小孩周末票价为:%.2f" %(a2.get_price(2)+c2.get_price(1)))


结果:
2个成人+1个小孩平日票价为:250.00
2个成人+1个小孩周末票价为:300.00

7. 编写程序,小明和小美爱跑步,小明体重75.0公斤,小美体重45.0公斤,每次跑步会减肥0.5公斤,每吃一顿饭会增加1公斤。

 
class Person:
    def __init__(self,name,weight):
        self.name=name
        self.weight=weight
    def get(self,m,n):
        return self.weight+(1*n-0.5*m)
a1=Person("小明",75)
a2=Person("小美",45)
m=int(input("两人跑步次数m:"))
n=int(input("两人吃饭次数n:"))
print("小明经过一段时间后的体重为:%.2f" %(a1.get(m,n)))
print("小美经过一段时间后的体重为:%.2f" %(a2.get(m,n)))
 
 
 
结果
两人跑步次数m:1
 
两人吃饭次数n:2
小明经过一段时间后的体重为:76.50
小美经过一段时间后的体重为:46.50

8 编写程序,设计一个表示学生的( Student )类,该类的属性有姓名( name )、年龄(age)成绩 scores )绩包含语文、数学和英语三科成绩,每科成绩的类型为整数),另外有3个方法。

    (1获取学生姓名的方法: getname(),返回类型为String.

    (2)获取学生年龄的方法: getage()方法,返回类型为int

    (3)返回3门科目中最高的分数: get course(),返回类型为int

class Student:
    def __init__(self,name,age,scores):
        self.name = name
        self.age = age
        self.scores = scores

    def get_name(self):
        return '姓名:{}'.format(self.name)

    def get_age(self):
        return '年龄:{}'.format(self.age)

    def get_course(self):
        return '最高分:{}'.format(max(self.scores))

a = Student('张钊','18',(93,95,98))
print(a.get_name())
print(a.get_age())
print(a.get_course())

你可能感兴趣的:(python,python,开发语言,后端)