1.声明一个电脑类: 属性:品牌、颜色、内存大小 方法:打游戏、写代码、看视频
class Computer:
def __init__(self, brand='杂牌', color='黑色', ram='1G'):
self.brand = brand
self.color = color
self.ram = ram
def playgame(self, *game):
if self.ram == '1G' or self.ram == '1g' or self.ram[-2:] == 'MB'or self.ram[-2:] == 'mb':
return '你电脑配置太低无法运行游戏'
else:
return '电脑正在运行' + str(game)[1:-1]
def seevideo(self, video):
return '电脑正在播放' + video
def edit(self, edit1):
return '电脑正在使用' + edit1 +'进行编程'
c1 = Computer()
c2 = Computer(ram='8G')
print(c1.playgame('吃鸡', "吃鸭"))
print(c2.playgame('吃鸡', "吃鸭"))
print(c2.seevideo('流浪Python'))
print(c2.edit('Python'))
'''
你电脑配置太低无法运行游戏
电脑正在运行'吃鸡', '吃鸭'
电脑正在播放流浪Python
电脑正在使用Python进行编程
'''
a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性
# 创建 ===================================
c3 = Computer()
# 获取 ===================================
print(c3.brand, c3.color, c3.ram)
# 杂牌 黑色 1G
# 修改 ====================================
c3.brand = 'Tinkpad x23T'
print(c3.brand, c3.color, c3.ram)
# Tinkpad x23T 黑色 1G
# 添加 =====================================
c3.rom = '500G'
print(c3.brand, c3.color, c3.ram, c3.rom)
# Tinkpad x23T 黑色 1G 500G
# 删除它的属性 ==============================
print(getattr(c3, 'color', '没有颜色记录'))
del c3.color
print(getattr(c3, 'color', '没有颜色记录'))
# 黑色
# 没有颜色记录
b.通过attr相关方法去获取、修改、添加和删除它的属性
# ======创建========
c4 = Computer()
# ======获取========
print(getattr(c4, 'color', '没有颜色记录'))
# 黑色
# ======修改========
setattr(c4, 'brand', '东芝')
print(getattr(c4, 'brand', '没有品牌记录'))
# 东芝
# =======添加========
setattr(c4, 'rom', '256G')
print(c4.brand, c4.color, c4.ram, c4.rom)
# 东芝 黑色 1G 256G
# ======删除它的属性======
print(getattr(c4, 'color', '没有颜色记录'))
delattr(c4, 'color')
print(getattr(c4, 'color', '没有颜色记录'))
# 黑色
# 没有颜色记录
2.声明一个人的类和狗的类:
狗的属性:名字、颜⾊色、年年龄
狗的方法:叫唤
人的属性:名字、年龄、狗
人的方法:遛狗
a.创建人的对象小明,让他拥有一条狗大黄,然后让小明去遛大黄
class People:
def __init__(self, name, age=18, *dog):
self.name = name
self.age = age
self.dog = Dog(*dog)
def walkDog(self):
return (self.dog.dog_call(), '%s在遛一只叫%s%s%d岁的%s' %
(self.name, self.dog.name, self.dog.colour, self.dog.age,
('大狗' if self.dog.age > 2 else '小狗')))
class Dog:
def __init__(self, name='狗', age=0, colour='白色' ):
self.name = name
self.age = age
self.colour = colour
def dog_call(self):
return '嗷!嗷!嗷!嗷!'
print('====================================')
pd1 = People('小明', 18, '二哈', 3, '黑白色')
a, b = pd1.walkDog()
print(a, b, sep='\n')
# 嗷!嗷!嗷!嗷!
# 小明在遛一只叫二哈黑白色3岁的大狗
3.声明一个圆类,自己确定有哪些属性和方法
from math import pi
class Circle:
def __init__(self, radii, seat=(0, 0)):
self.seat = seat
self.radii = radii
self.diameter = radii * 2
def perimeter(self):
return pi*self.diameter
def area(self):
return self.radii**2 * pi
circle1 = Circle(10)
print(circle1.seat, circle1.radii, circle1.diameter, circle1.perimeter(), circle1.area())
# (0, 0) 10 20 62.83185307179586 314.1592653589793
4.创建一个学生类:
属性:姓名,年龄,学号
方法:答到,展示学生信息
- 创建一个班级类:
属性:学生,班级名
方法:添加学生,删除学生,点名, 求班上学生的平均年龄
class Student:
def __init__(self, class_name, number, name, age, ):
self.name = name
self.age = age
self.number = number
self.class_name = class_name
def response(self):
return self.name + ' 到'
def show(self):
str1 = '班级:' + self.class_name
str1 += ' 姓名:' + self.name
str1 += ' 年龄:' + str(self.age)
str1 += ' 学号:' + self.number
return str1
class Class:
def __init__(self, class_name):
self.students = []
self.class_name = class_name
self.class_name_num = ''.join([char for char in self.class_name if '0' <= char <= '9'])
self.number = ('stu' + self.class_name_num + str(x).zfill(2) for x in range(100))
def add_student(self, name, age):
"""添加学生信息,需要名字和年龄"""
student = Student(self.class_name, next(self.number), name, age)
self.students.append(student)
def del_student(self, name):
"""通过名字,删除一个学生的资料,资料会返回"""
for index in range(len(self.students)):
if self.students[index].name == name:
return self.students.pop(index)
def show_seudents(self):
"""显示所有学生信息"""
str1 = ''
for student in self.students:
str1 += student.show() + '\n'
return str1
def show_class(self):
'''显示班级信息'''
return self.class_name, str(len(self.students))
def call_the_roll(self):
"""点名"""
str1 = ''
for student in self.students:
str1 += student.response() + '\n'
return str1
def average_age(self):
lenght = len(self.students)
sum1 = 0
for student in self.students:
sum1 += student.age
return '%.2f'%(sum1/lenght)
# 方法:添加学生,删除学生,点名, 求班上学生的平均年龄
# 添加学生
print('=================')
c1 = Class('19年01班')
c1.add_student('阿童木', 5)
c1.add_student('路飞', 12)
c1.add_student('白龙马', 1200)
# 显示班级信息
a, b = c1.show_class()
print(a, '班级人数:', b)
print(c1.show_seudents())
'''
19年01班 班级人数: 3
班级:19年01班 姓名:阿童木 年龄:5 学号:stu190100
班级:19年01班 姓名:路飞 年龄:12 学号:stu190101
班级:19年01班 姓名:白龙马 年龄:1200 学号:stu190102
'''
# 删除学生
print('del -> ', c1.del_student('白龙马'))
c1.del_student('白龙马')
a, b = c1.show_class()
print(a, '班级人数:', b)
print(c1.show_seudents())
'''
del -> <__main__.Student object at 0x01E4FA70>
19年01班 班级人数: 2
班级:19年01班 姓名:阿童木 年龄:5 学号:stu190100
班级:19年01班 姓名:路飞 年龄:12 学号:stu190101
'''
# 点名
print(c1.call_the_roll())
'''
阿童木 到
路飞 到
'''
# 求平均年龄
print(c1.average_age())
'''
8.50
'''