轻松的编程学习
首页
题库
学习路径
在线商城
能力地图
下载应用
登录 / 注册
菜单
⚠️ 换写法之前,先证明两边等价
👁️ 2 人浏览
💬 0 人评论
❤️ 添加收藏
多态版和 if/elif 版各算一遍三个形状的面积,然后对拍。
提交你的答案
请登录后提交答案。
去登录
← 🔴 加一个新形状,两种写法各要改几处
⚠️ 漏实现的那个,当场就该炸 →
更多题目
让程序说出"你好"
让程序欢迎你
哪个命令能显示内容
哪里是指令,哪里是结果
让程序说出你的名字
这个程序会显示什么
代码编辑器
语言:
python3
c11
cpp17
Ctrl
+
Enter
运行
👩🏫 AI
▶ 运行代码
重置代码
打印代码
class Shape: """只承诺一件事:能算面积""" def area(self): raise NotImplementedError def name(self): raise NotImplementedError class Rect(Shape): def __init__(self, w, h): self.w, self.h = w, h def area(self): return self.w * self.h def name(self): return "长方形" class Square(Shape): def __init__(self, s): self.s = s def area(self): return self.s ** 2 def name(self): return "正方形" class Tri(Shape): def __init__(self, b, h): self.b, self.h = b, h def area(self): return self.b * self.h // 2 def name(self): return "三角形" SHAPES = [Rect(3, 4), Square(5), Tri(6, 5)] def area_of(s): if s["kind"] == "rect": return s["w"] * s["h"] elif s["kind"] == "square": return s["side"] ** 2 elif s["kind"] == "tri": return s["base"] * s["height"] // 2 return 0 def name_of(s): if s["kind"] == "rect": return "长方形" elif s["kind"] == "square": return "正方形" elif s["kind"] == "tri": return "三角形" return "?" def sides_of(s): if s["kind"] == "rect": return 4 elif s["kind"] == "square": return 4 elif s["kind"] == "tri": return 3 return 0 DICTS = [{"kind": "rect", "w": 3, "h": 4}, {"kind": "square", "side": 5}, {"kind": "tri", "base": 6, "height": 5}] # TODO: 两种写法各算一遍三个形状的面积,结果必须完全一样 a = [] b = [] # TODO: 一致输出「一致」,否则「不一致」 verdict = "不一致" print("/".join(str(x) for x in a) + "/" + verdict)
本次输入:
输出:
👩🏫
AI
请登录后使用 AI 老师
×
登录后可获得解题思路、提示与错误分析。
去登录
关闭
🎉
恭喜你,回答正确!
系统判定:正确
我知道了
💬 题目评论
提交
全部评论
全部评论