最新发布
-
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) -
[for+switch]用循环打印出“*”Z字形 题目 需求: - ◆用循环打印出下列图形: ********** //10星 * * * * * * * * * ********** //10星 (提示:若用单层循环,则可以考虑for+switch结构实现) 代码 public class home { public static void main(String[] args) { String s = "*"; String n = " "; for (int l = 0; l < 11; l++) { //循环打印11行 switch (l){ case 0: case 10: System.out.println("**********"); //第一行和最后一行输出十个* break; default: //除开第一行和最后一行执行这个方法 s = "*"; n = ""; for (int j = 0; j <= 10-l; j++) { //根据行数来输出多少个“ ”(空格) n = n +" "; if (j == 9-l){ n = n + s; //末尾加上* } } System.out.println(n); } } /* 第一版 System.out.println("**********"); for (int i = 0; i < 9; i++) { s = "*"; n = ""; for (int j = 0; j <= 9-i; j++) { n = n +" "; if (j == 8-i){ n = n + s; } } System.out.println(n); } System.out.println("**********"); */ } } -
[switch + if else]输入一成绩,在控制台上输出其等级A/B/C/D/E..... 题目 需求: - ◆输入一成绩,在控制台上输出其等级A/B/C/D/E 请输入成绩(Q/q退出): 86 B 请输入成绩(Q/q退出): 74 C 请输入成绩(Q/q退出): 120 超出范围(0-100),请重新输入! 请输入成绩(Q/q退出): 98 A 请输入成绩(Q/q退出): q bye! (提示:可用switch语句实现;屏幕输入用Scanner类) 代码 public class Home { public static void main(String[] args) { int i = 1; while (i == 1){ System.out.println("请输入成绩(Q/q退出):"); Scanner sc = new Scanner(System.in); String input = sc.next(); switch (input){ case "q": case "Q": i = 0; System.out.println("bye!"); break; default: Double a = Double.valueOf(input); if (a>100){ System.out.println("超出范围(0-100),请重新输入!"); break; }else if (a>=90){ System.out.println("A"); break; }else if (a>=80){ System.out.println("B"); break; }else if (a>=70){ System.out.println("C"); break; }else if (a>=60){ System.out.println("D"); break; }else if (a>=0){ System.out.println("E"); }else { System.out.println("超出范围(0-100),请重新输入!"); break; } break; } } } }