1.声明一个电脑类:
属性:品牌、颜⾊色、内存大小
方法:打游戏、写代码、看视频
a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性
b.通过attr相关方法去获取、修改、添加和删除它的属性
# 声明一个电脑类
class Computer:
def __init__(self,brand,color,memory_size):
self.brand = brand
self.color = color
self.memory_size = memory_size
def playgame(self):
print('使用%s来打游戏'%(self.brand))
def coding(self):
print('使用%s来写代码'%(self.brand))
def video(self):
print('使用%s来看视频'%(self.brand))
if __name__ == '__main__':
# 要求a
computer1 = Computer('ASUS','black','8GB')
# 获取电脑品牌
print(computer1.brand)
# 修改电脑颜色
print(computer1.color)
computer1.color = 'white'
print(computer1.color)
# 添加电脑操作系统
computer1.system = '64位'
print(computer1.system)
# 删除内存大小
del computer1.memory_size
# 要求b
# 获取电脑品牌
print(computer1.__getattribute__('brand'))
# 修改电脑颜色
setattr(computer1,'color','red')
print(computer1.color)
# 添加电脑价格
computer1.__setattr__('price',5800)
print(computer1.price)
# 删除电脑操作系统
computer1.__delattr__('system')
#结果
ASUS
black
white
64位
ASUS
red
5800
2.声明一个人的类和狗的类:
狗的属性:名字、颜色、年龄 狗的方法:叫唤
人的属性:名字、年龄、狗 人的方法:遛狗
a.创建人的对象小明,让他拥有一条狗大黄,然后让小明去遛大黄
# 声明狗类
class Dog:
def __init__(self,name,color,age):
self.name = name
self.color = color
self.age = age
def bark(self):
print('%s叫唤了起来'% self.name)
# 声明人类
class Person:
def __init__(self,name,age,dog = None):
self.name = name
self.age = age
self.dog = dog
def walk_dog(self):
print('%s在遛狗'% self.name)
if __name__ == '__main__':
# 声明狗大黄
dog = Dog('大黄','yellow',8)
# 声明小明
person = Person('小明',16)
# 让小明拥有大黄
person.__setattr__('dog',dog)
# 小明遛狗
person.walk_dog()
#结果
小明在遛狗
3.声明一个矩形类:
属性:长、宽 方法:计算周长和面积
a.创建不同的矩形,并且打印其周长和面积
# 声明矩形类
class Rect:
def __init__(self,width,heigth):
self.width = width
self.heigth = heigth
# 计算周长
def girth(self):
print('周长为:'+str((self.width+self.heigth)*2))
return (self.width+self.heigth)*2
# 计算面积
def area(self):
print('面积为:'+str(self.width*self.heigth))
return self.width*self.heigth
if __name__ == '__main__':
# 创建3个不同的矩形
rect1 = Rect(3,4)
rect2 = Rect(5,6)
rect3 = Rect(7,8)
print('rect1:')
rect1.girth()
rect1.area()
print('rect2:')
rect2.girth()
rect2.area()
print('rect3:')
rect3.girth()
rect3.area()
#结果
rect1:
周长为:14
面积为:12
rect2:
周长为:22
面积为:30
rect3:
周长为:30
面积为:56
4.创建一个学生类:
属性:姓名,年龄,学号 方法:答到,展示学生信息
创建一个班级类:
属性:学生,班级名 方法:添加学生,删除学生,点名
# 声明学生类
class Student:
def __init__(self,name,age,stu_id):
self.name = name
self.age = age
self.stu_id = stu_id
# 答到
def answer(self):
print('%s 到!' % self.name)
return True
# 展示信息
def info(self):
print('姓名:%s 年龄:%d 学号:%s'% (self.name,self.age,self.stu_id))
# 声明班级类
class Class:
def __init__(self,class_name,students=[]):
self.class_name = class_name
self.students = students
# 添加学生
def add_stu(self):
name = input('name:')
age = input('age:')
stu_id = input('stu_id:')
stu = Student(name,age,stu_id)
self.students.append(stu)
# 删除学生
def del_stu(self):
stu_id = input('stu_id:')
for x in self.students:
if x.stu_id == stu_id:
self.students.remove(x)
# 点名
@staticmethod
def coll_over():
name = input('name:')
print('%s 到了吗?' % name)
if __name__ == '__main__':
pass
5.写一个类,封装所有和数学运算相关的功能(包含常用功能和常用值,例如:pi,e等)
import math
# 封装一小部分数学函数
class MathOperation:
PI = math.pi
E = math.e
@classmethod
def circle_area(cls,r):
print('该圆的面积是:%.2f' % (cls.PI*r**2))
@classmethod
def circle_girth(cls,r):
print('该圆的周长是:%.2f' % (cls.PI*2*r))
@staticmethod
def m_sqrt(number):
print('该数开平方根结果为:%.2f' % math.sqrt(number))
@staticmethod
def number_abs(number):
print('该数的绝对值是:%.2f' % math.fabs(number))
if __name__ == '__main__':
# 对象测试
MathOperation.circle_area(4)
MathOperation.circle_girth(4)
MathOperation.m_sqrt(4)
MathOperation.number_abs(-3.8)
#结果
该圆的面积是:50.27
该圆的周长是:25.13
该数开平方根结果为:2.00
该数的绝对值是:3.80
6.写一个班级类,属性:班级名、学生;
功能:添加学生、删除学生、根据姓名查看学生信息,展示班级的所有学生信息
# 声明学生类
class Student:
__slots__ = ('name','age','stu_id','tel','scores')
def __init__(self,name,age,stu_id,tel):
self.name = name
self.age = age
self.stu_id = stu_id
self.tel = tel
# 声明班级类
class Class:
__slots__ = ('class_name', 'students', 'class_money')
def __init__(self,class_name,students=[]):
self.class_name = class_name
self.students = students
# 添加学生
def add_stu(self):
name = input('name:')
age = int(input('age:'))
stu_id = input('stu_id:')
tel = input('tel:')
stu = Student(name,age,stu_id,tel)
self.students.append(stu)
# 删除学生
def del_stu(self):
stu_id = input('stu_id:')
for x in self.students:
if x.stu_id == stu_id:
self.students.remove(x)
# 根据姓名查看学生
def lookup_stu(self):
name = input('input syudent\'s name:')
for x in self.students:
if x.name == name:
print('姓名:%s 年龄:%d 学号:%s 电话:%s' %
(x.name, x.age, x.stu_id, x.tel))
# 展示班级的所有学生
def all_info(self):
for x in self.students:
print('姓名:%s 年龄:%d 学号:%s 电话:%s' %
(x.name, x.age, x.stu_id, x.tel))
if __name__ == '__main__':
c1 = Class('python1',[])
while True:
c1.add_stu()
order = input('contiue?y/n >>>')
if order == 'n':
break
c1.all_info()
#结果
name:ww
age:25
stu_id:1
tel:12345678
contiue?y/n >>>y
name:ee
age:26
stu_id:2
tel:12345678
contiue?y/n >>>y
name:rr
age:27
stu_id:3
tel:12345678
contiue?y/n >>>n
姓名:ww 年龄:25 学号:1 电话:12345678
姓名:ee 年龄:26 学号:2 电话:12345678
姓名:rr 年龄:27 学号:3 电话:12345678
网友评论