import math
from random import randint
1.声明个电脑类: 属性:品牌、颜、内存小 方法:打游戏、写代码、看视频
a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性
b.通过attr相关方法去获取、修改、添加和删除它的属性
class Computer:
def __init__(self, brand, color, ram):
self.brand = brand
self.color = color
self.ram = ram
def play_game(self):
print('打游戏')
def coding(self):
print('写代码')
com1 = Computer('联想', '黑色', 8)
# 增
# com1.size = 15
setattr(com1, 'size', 15)
# 删
# del com1.color
delattr(com1, 'color')
# 改
# com1.brand = '戴尔'
setattr(com1, 'brand', '戴尔')
# 查
print(com1.brand)
print(getattr(com1, 'brand1', '苹果'))
2.声明个人的类和狗的类:
狗的属性:名字、颜色、年龄
狗的方法:叫唤
人的属性:名字、年龄、狗
人的方法:遛狗
a.创建人的对象小明,让他拥有一条狗大黄,然后让小明去遛大黄
class Dog:
def __init__(self, name, age, color='黄色'):
self.name = name
self.color = color
self.age = age
def shout(self):
print('%s:汪汪汪!' % self.name)
class Person:
def __init__(self, name: str, age=0):
self.name = name
self.age = age
self.dog = None
def walk_the_dog(self):
if self.dog:
print('%s牵着%s在散步' % (self.name, self.dog.name))
else:
print('没有狗!遛自己!')
p1 = Person('小明', 18)
p1.dog = Dog('大黄', 3) #声明一条属于p1的狗
p1.walk_the_dog()
3.声明一个圆类,自己确定有哪些属性和方法
class Circle: #先声明
def __init__(self, radius): #创建属性
self.radius = radius
def get_perimeter(self): #创建方法
return 2*math.pi*self.radius
def get_area(self): # 创建方法 ,用return取获得相应的值
return math.pi * self.radius**2
4.创建一个学生类:
属性:姓名,年龄,学号
方法:答到,展示学生信息
创建一个班级类:
属性:学生,班级名
方法:添加学生,删除学生,点名, 求班上学生的平均年龄
class Student:
def __init__(self, name, age=18):
self.name = name
self.age = age
self.stu_id = '001'
def reply(self):
print('%s,到!' % self.name)
def show(self):
print('姓名:%s,年龄: %d,学号:%s' % (self.name, self.age, self.stu_id))
class Class:
def __init__(self, name: str):
self.students = []
self.name = name
self.id_creater = ('stu'+str(x).zfill(3) for x in range(1, 101))
def add_student(self):
# 输入信息
name = input('姓名:')
age = int(input('年龄:'))
stu_id = next(self.id_creater)
# 创建学生
stu = Student(name, age)
stu.stu_id = stu_id
self.students.append(stu)
def del_student(self, name):
flag = False
for stu in self.students[:]:
if stu.name == name:
flag = True
stu.show()
value = input('是否删除(Y/N):')
if value == 'Y':
self.students.remove(stu)
if not flag:
print('没有找到该学生!')
def call_the_roll(self):
for stu in self.students:
print(stu.name)
if randint(0, 1) == 1:
# 答到
stu.reply()
c1 = Class('py1902')
print('===========添加学生============')
for _ in range(5):
c1.add_student()
print('===========删除学生============')
c1.del_student('小明')
print('===========点名===============')
c1.call_the_roll()