1.定义一个汽车类Vehicle,
要求: 1.属性包括:汽车品牌brand、颜色color和速度speed, 其中速度的起始值是0。
2.为属性提供访问的方法。**注意:**汽车品牌一旦初始化之后不能修改。
3.方法有加速、减速。
class Vehicle(object):
def __init__(self,brand,color):
self.__brand=brand
self.color=color
self.speed=0
def speed_up(self,speed):
self.speed+=speed
print("加速之后的车速为%s" %(self.speed))
def speed_down(self,speed):
if speed>self.speed:
#print("抱歉,无法完成减速")
self.speed=0
else:
self.speed -= speed
print("减速")
@property
def brand(self):
return self.__brand
@brand.setter
def brand(self,brand):
self.__brand=brand
w=Vehicle("宝马","白色")
w.speed_up(12)
w.speed_down(23)
w.color="黑色"
print(w.color)
w.brand="宾利"
print(w.brand)
2.定义一个点类 Pointer 属性是横向坐标 x与 纵向坐标 y
定义一个圆类 Circle
属性有圆心点 cp 与 半径 radius
方法有:
1.求圆的面积
2.求圆的周⻓
3.求指定点与圆的关系
提示:关系有三种 【圆内 圆外 圆上】 设计到的数学公式:指定点与圆心点之间的距离 与 圆的半径进行比较
import math
class Pointer():
def __init__(self,x,y):
self.x=x
self.y=y
class Circle():
def __init__(self,cp,radius):
self.cp=cp
self.radius=radius
def area(self):
return 3.14*self.radius**2
def perimeter(self):
return 2*3.14*self.radius
def relation(self,cp,po):
l=math.sqrt((po.x-cp.x)**2+(po.y-cp.y)**2)
if l>self.radius:
print("圆外")
elif l==self.radius:
print("圆上")
elif l<self.radius:
print("圆内")
po=Pointer(2,2)
cp=Pointer(0,0)
a=Circle(cp,1)
print(a.area())
print(a.perimeter())
a.relation(cp,po)
3.宠物店类 PetShop
属性:店名,店中的宠物 【使用列表存储宠物】
方法:展示所有宠物的信息
宠物狗类 PetDog
属性:昵称,性别,年龄,品种
方法:叫,拆家,吃饭
宠物猫类 PetCat
属性:昵称,性别,年龄,品种,眼睛的颜色
方法:叫,撒娇,吃饭
注意:狗的叫声是汪汪 猫的叫声是喵喵 狗吃的是⻣头 猫吃的是⻥
class PetShop():
def __init__(self,name,pet_list):
self.name=name
self.pet_list=pet_list
def show(self):
if len(self.pet_list) == 0:
print("刚开张,还没有宠物呢!")
return
print("{}".format(self.name))
for pet in self.pet_list:
print(pet.__dict__)
class Pet(object):
def __init__(self,name,gender,age,kind):
self.name=name
self.gender=gender
self.age=age
self.kind=kind
def cry(self):
pass
def eat(self):
pass
def myprint(self):
print(self.name,self.gender,self.age,self.kind)
class PetDog(Pet):
def des_home(self):
print(self.name + "拆家")
def cry(self):
print("汪汪")
def eat(self):
print(self.name +"eating")
class PetCat(Pet):
def __init__(self,name,gender,age,kind,eye_color):
self.eye_color=eye_color
super().__init__(name,gender,age,kind)
def cry(self):
print(self.name+"喵喵叫")
def play(self):
print(self.name + "撒娇")
def eat(self):
print(self.name + "吃⻥")
dog=PetDog("小黄","公",2,"柴犬")
dog1=PetDog("小黄1","公",3,"柴犬")
dog2=PetDog("小黄2","公",4,"柴犬")
cat=PetCat("小美","母",2,"美短","黑色")
cat1=PetCat("小美1","母",3,"美短","黑色")
cat2=PetCat("小美2","母",4,"美短","黑色")
ps=PetShop("shop",[dog,dog1,dog2])
ps.show()
dog.eat()
dog.cry()
cat.eat()
cat.cry()
4.利用继承完成下面代码的实现
销售类:
属性:姓名 年龄 性别 薪资 奖金
行为:合计自己的工资
行政类:
属性:姓名 年龄 性别 薪资
行为:合计自己的工资
财务类:
属性:姓名 年龄 性别 薪资
行为:合计自己的工资
分别创建 销售人员对象 行政人员对象 财务人员对象 分别输出他们的工资
class Person():
def __init__(self,name,age,gender,salary):
self.name=name
self.age=age
self.gender=gender
self.salary=salary
class Sell(Person):
def __init__(self,name,age,gender,salary,bouns):
self.bouns=bouns
Person.__init__(self,name,age,gender,salary)
def money(self):
return self.salary+self.bouns
class Administrative(Person):
def money(self):
return self.salary
class Finance(Person):
def money(self):
return self.salary
s=Sell("小王",24,"男",5000,1000)
a=Administrative("小美",24,"女",3000)
f=Finance("小李",24,"女",6000)
print(s.money())
print(a.money())
print(f.money())
5.继承完成
为一个州立大学建立账单系统,州内和州外学生的收费标准不同,州内每学分收费$75,州外每学分$200。每个学生账单上都显示学校的名字,学生自己的名字,学分和账单总额。
州内学生类:
属性:学校名 姓名 学分
方法: 计算学费 打印账单
州外学生类:
属性:学校名 姓名 学分
方法:计算学费 打印账单
分别创建一个州内学生对象 和 州外学生对象 分别打印他们的学费账单
class Person():
def __init__(self,school,name,grade):
self.school=school
self.name=name
self.grade=grade
class State_in(Person):
def cost(self):
return self.grade*75
def bill(self):
print("学校:%s,学生姓名:%s,学分:%s,账单总额:%s" %
(self.school,self.name,self.grade,self.cost()))
class State_out(Person):
def cost(self):
return self.grade*200
def bill(self):
print("学校:%s,学生姓名:%s,学分:%s,账单总额:%s" %
(self.school, self.name, self.grade, self.cost()))
wm=State_in("千峰","王猛",10)
xm=State_out("新东方","小美",10)
print(wm.cost())
wm.bill()
print(xm.cost())
xm.bill()
6.写出你今日对课程有疑问的地方(或者觉得有困难的知识点)
1.学生类Student:
属性:学号,姓名,年龄,性别,成绩
班级类 Grade:
属性:班级名称,班级中的学生 【使用列表存储学生】
方法:
1.查看该班级中的所有学生的信息
2.查看指定学号的学生信息
3.查看班级中成绩不及格的学生信息
4.将班级中的学生按照成绩降序排序
class Grade():
def __init__(self,class_name,list=None):
self.class_name=class_name
if list is None:
list=[]
self.list=list
def add_list(self,stu):
self.list.append(stu.stu_list)
def show(self):
print(self.list)
def show_num(self,num):
for i in self.list:
if num in i[0]:
print(i)
break
else:
print("该学号的学生不存在。")
def fail(self):
for i in self.list:
if i[4]<60:
print(i)
def sort(self):
for i in range(len(self.list)-1):
for j in range(len(self.list)-1-i):
if self.list[j][4]<self.list[j+1][4]:
self.list[j],self.list[j+1]=self.list[j+1],self.list[j]
print(self.list)
class Student():
def __init__(self,num,name,age,gender,score,stu_list=None):
self.num=num
self.name=name
self.age=age
self.gender=gender
self.score=score
self.stu_list=[self.num,self.name,self.age,self.gender,self.score]
grade=Grade("逆战班")
wm=Student("001","王猛",24,"男",100)
grade.add_list(wm)
xm=Student("002","小美",24,"女",99)
grade.add_list(xm)
zs=Student("003","张三",24,"男",88)
grade.add_list(zs)
ls=Student("004","李四",24,"男",40)
grade.add_list(ls)
#1.查看该班级中的所有学生的信息
grade.show()
#2.查看指定学号的学生信息
grade.show_num("001")
#3.查看班级中成绩不及格的学生信息
grade.fail()
#4.将班级中的学生按照成绩降序排序
grade.sort()