You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python类与format实现的计算器无报错不运行,如何单print输出友好内容

问题代码修复方案

原有代码的核心问题

  • 构造方法__init__定义了a、b两个不必要的形参,实例化Calc()时没有传入对应参数,会直接触发参数不匹配报错,这是程序无法运行的核心原因
  • 类内部的calculator方法直接调用了外部实例名c1,类内部调用自身属性和方法应该使用self关键字,否则代码耦合度极高,更换实例名后会直接失效
  • 输入提示无结尾分隔符,用户输入体验不佳

修复后代码

class Calc:
    # 去掉多余的形参a、b,直接在构造方法内通过input获取输入值
    def __init__(self):
        self.a = int(input("Enter a: "))
        self.b = int(input("Enter b: "))

    def add(self):
        return self.a + self.b

    def sub(self):
        return self.a - self.b

    def mult(self):
        return self.a * self.b

    def div(self):
        # 新增除0判断避免程序崩溃,不需要可直接删除该行使用原除法逻辑
        return self.a / self.b if self.b != 0 else "除数不能为0"

    def calculator(self):
        # 用self替代外部实例名c1,单条print+format实现结果输出
        print("""sum of {0} and {1} = {2}
subtraction of {0} and {1} = {3}
Multiplication of {0} and {1} = {4}
Division of {0} and {1} = {5}""".format(self.a, self.b, self.add(), self.sub(), self.mult(), self.div()))
        

c1 = Calc()
c1.calculator()

可选优化

如果需要更符合中文用户的输出,可以将打印字符串替换为中文提示:

print("""{0} 和 {1} 的和 = {2}
{0} 和 {1} 的差 = {3}
{0} 和 {1} 的积 = {4}
{0} 和 {1} 的商 = {5}""".format(self.a, self.b, self.add(), self.sub(), self.mult(), self.div()))

内容的提问来源于stack exchange,提问作者Barbie2001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:45:05