找到
9
篇与
技术分享
相关的结果
-
Python面向对象练习题 类属性 需求: - 定义一个类属性,记录通过这个类创建了多少个对象。 代码 class Person(object): count = 0 # 类属性 def __init__(self, name, age): Person.count += 1 self.name = name self.age = age # 创建对象 p1 = Person('张三', 18) p2 = Person('李四', 21) p3 = Person('王五', 22) print(Person.count) 汽车类 需求: - 建立一个汽车类Auto,包括轮胎个数(wheel_count,默认为4)、汽 车颜色(color)、车身重量(weight)、速度(speed,默认为0)等属性,并 定义一个可以改变车速的方法。 至少要求汽车能够加速、减速、停车。 再定义一个小汽车类CarAuto,继承Auto,并添加空调(ac)、 CD(cd)属性,并且重新实现方法覆盖加速、减速的方法。 代码 class Auto: def __init__(self, wheel_count=4, color='', weight=0, speed=0): self.wheel_count = wheel_count self.color = color self.weight = weight self.speed = speed def up_speed(self): self.speed += 1 print('汽车加速') def down_speed(self): if self.speed > 0: self.speed -= 1 print('汽车减速') def stop_car(self): self.speed = 0 print('汽车停止了') def __str__(self): return "汽车属性:\n 颜色:{}\n 轮胎个数:{}\n 重量:{}\n 速度:{}\n".format(self.color, self.wheel_count, self.weight, self.speed) class CarAuto(Auto): def __init__(self, ac, cd): super(CarAuto, self).__init__() self.ac = ac self.cd = cd def __str__(self): return "CarAuto:\n AC:{}\n CD:{}".format(self.ac, self.cd) def up_speed(self): self.speed += 1 print('CarAuto加速') def down_speed(self): self.speed -= 1 print('CarAuto减速') a1 = Auto(4, '红色', 900, 80) print(a1) a1.up_speed() a1.down_speed() a1.stop_car() print("\n") c1 = CarAuto("制热", "") print(c1) c1.up_speed() c1.down_speed() 银行账户类 需求: - 有一个银行账户类Account,包括名字、余额等属性,方法有存钱、 取钱、查询余额等操作。要求: 在存钱时,注意存款数据的格式 取钱时,要判断余额是否充足,余额不够的时候要提示余额不足。 代码 class Account(object): def __init__(self, name, balance): self.name = name self.balance = balance def save_money(self, money): assert isinstance(money, float) or isinstance(money, int), '请注意存钱数据的格式' self.balance += money print('存钱操作:{}, 当前余额:{}'.format(money,self.balance)) def take_money(self, money): if self.balance < money: print('取钱操作:{},余额不足,当前余额:{}'.format(money, self.balance)) else: self.balance -= money print('取钱操作:{}, 当前余额:{}'.format(money, self.balance)) def check_balance(self): return self.balance a = Account('张三', 8000) a.save_money(10000) a.take_money(1000) print('当前余额:', a.check_balance()) a.take_money(20000) print('当前余额:', a.check_balance()) 点与圆的关系 需求: - 定义一个点类 Pointer,属性是横向左边 x 和 纵向坐标 y 定义一个圆类 Circle,属性有圆心点 cp 和 半径 radius 方法有: 求圆的面积 求圆的周长 求指定点与圆的关系(圆内、圆外、圆上) 涉及到的数学公式:指定点与圆心点之间的距离 与 圆的半径进行比较 代码 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 num1(self): s = math.pi * self.radius ** 2 c = 2 * math.pi * self.radius return f'圆的周长{c},圆的面积{s}' def num2(self, obj): b = ((obj.x - p3.x) ** 2 + (obj.y - p3.y) ** 2) ** 1 / 2 # 点与圆心点之间的距离 if b > self.radius: print('点在圆外') elif b < self.radius: print('点在园内') else: print('点在圆上') p1 = Pointer(0, 0) # 设置圆心点 c2 = Circle(p1, 5) # 设置圆 p3 = Pointer(1, 2) # 设置点 print(c2.num1()) # 圆的周长和面积 c2.num2(p1) 宠物店猫狗 需求: - 定义一个宠物店类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(self.name + "汪汪") def eat(self): print(self.name + "吃骨头") 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, cat]) ps.show() dog.eat() dog.cry() cat.eat() cat.cry() 学生类列表 需求: - 定义一个学生类 Student:属性有学号、姓名、年龄、性别、成绩。 定义一个班级类Grade:属性有班级名称、班级中的学生(使用列表存储学生) 方法有: 查看该班级中的所有学生信息; 查看指定学号的学生信息; 查看班级中成绩不及格的学生信息; 将班级中的学生按照成绩降序排序。 代码 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): # 1.查看该班级中的所有学生的信息 print(self.list) def show_num(self, num): # 2.查看指定学号的学生信息 for i in self.list: if num in i[0]: print(i) break else: print("该学号的学生不存在。") def fail(self): # 3.查看班级中成绩不及格的学生信息 for i in self.list: if i[4] < 60: print(i) def sort(self): # 4.将班级中的学生按照成绩降序排序 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() -
Python简单计算器练习 题目 需求: - 设计一个计算器类,可以进行加、减、乘、除计算。 代码 # @Time: 2021/10/15 13:02 # @Auth: 君若(QQ1813774883) class myCalc: def __init__(self, one, two): self.one = one self.two = two def addition(self, Retain): return round(self.one + self.two, Retain) def subtraction(self, Retain): return round(self.one - self.two, Retain) def multiplication(self, Retain): return round(self.one * self.two, Retain) def division(self, Retain): return round(self.one / self.two, Retain) while True: get_num1 = input("请输入第一个数字:") opera = input("请输入运算符:") get_num2 = input("请输入第二个数字:") get_retain = input("请输入保留小数位数:") num1 = float(get_num1) num2 = float(get_num2) retain = int(get_retain) result = 0.00 if opera == "+": result = myCalc(num1, num2).addition(retain) print("输出结果是:", result) elif opera == "-": result = myCalc(num1, num2).subtraction(retain) print("输出结果是:", result) elif opera == "*": result = myCalc(num1, num2).multiplication(retain) print("输出结果是:", result) elif opera == "/": result = myCalc(num1, num2).division(retain) print("输出结果是:", result) else: print("运算符错误!请重新输入") -
Python判断点是否在矩形内练习 题目 需求: - 设计两个类: 一个点Point类,属性包括 x 和 y 坐标。 一个矩形Rectangle类,属性有左上角(top_left)和 右下角(bottom_right)的坐标。 方法:1.计算矩形的面积(get_area);2.判断点是否在矩形内(is_inside)。 主程序: 实例化一个点对象,一个正方形对象,输出矩形的面积,输出点是否在矩形内。 代码 # @Time: 2021/10/15 13:21 # @Auth: 君若(QQ1813774883) class Point: def __init__(self, x, y): self.x = x self.y = y def __str__(self): return "点Point的坐标为({},{})".format(self.x, self.y) class Rectangle: def __init__(self, top_left_x, top_left_y, bottom_right_x, bottom_right_y): self.top_left_x = top_left_x self.top_left_y = top_left_y self.bottom_right_x = bottom_right_x self.bottom_right_y = bottom_right_y self.chang = 0 self.kuan = 0 def __str__(self): return "矩形Rectangle的左上角坐标为({},{})右下角坐标为({},{})".format(self.top_left_x, self.top_left_y, self.bottom_right_x, self.bottom_right_y) def is_hefa(self): self.chang = round(self.bottom_right_x - self.top_left_x, 2) self.kuan = round(self.top_left_y - self.bottom_right_y, 2) if self.chang <= 0 or self.kuan <= 0: # 矩形左上角和右下角(x1,y2)和(x2,y2) 应该满足 x1<x2 y1>y2 ,才是合法的。 return 0 else: return 1 def get_area(self): return "矩形:\n 长:{}\n 宽:{}\n 面积:{}".format(self.chang, self.kuan, self.chang * self.kuan) def is_inside(self, point): if self.top_left_x < point.x < self.bottom_right_x and self.top_left_y > point.y > self.bottom_right_y: return "点在矩形内" else: return "点不在矩形内" point = Point(2, 3) rectangle = Rectangle(1, 4, 4, 1) print(point) print(rectangle) if rectangle.is_hefa() == 0: print("矩形数据不合法;") else: print(rectangle.get_area()) print(rectangle.is_inside(point)) -
Python摆放家具练习 题目 需求: - 1)主程序只负责创建房子对象和家具对象。 2)让房子对象调用add_item方法将家具添加到房子中。 3)面具计算、剩余面积、家具列表等处理都被封装在房子类的内部。 代码 class Home: def __init__(self, home_name, area): self.home_name = home_name self.area = area self.freearea = area self.jiaju = [] def __str__(self): return "户型:{} \n总面积:{}\n剩余面积:{}\n家具名:{}".format(self.home_name, self.area, self.freearea, self.jiaju) def add_item(self, itm): print("添加", itm) # 判断家具的面积 if itm.area > self.freearea: print("{}的面积太大,无法添加!".format(itm.name)) return # 将家具的名称添加到列表 self.jiaju.append(itm.name) # 计算剩余面积 self.freearea -= itm.area class jiaju(): def __init__(self, name, area): self.name = name self.area = area def __str__(self): return "[{}]:占地 [{}] 平米".format(self.name, self.area) # 创建家具 bed = jiaju("床", 4) chest = jiaju('衣柜', 2) table = jiaju('餐桌', 1.5) # 创建房子 myhome = Home('三室一厅', 100) myhome.add_item(bed) myhome.add_item(bed) myhome.add_item(bed) myhome.add_item(chest) myhome.add_item(table) print(myhome)