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

Python四则运算代码报TypeError缺失user参数 求修复与功能补全

错误原因梳理
  • 类名定义与实例化时名称不一致:定义的类是cooperators,实例化时错误写为caloperators
  • 调用方法时未传递必要参数:operator()、play()方法都要求传入用户选择的运算符参数,原代码调用时没有传参,且choose()方法返回的用户输入没有存储直接丢弃
  • 缺少random模块导入,调用random.randint会触发未定义错误
  • 功能未补全:仅实现了加法的出题逻辑,缺少减、乘、除的实现,且没有接收用户答题输入、判断答案正确性的逻辑
  • 无效代码:最后几行打印方法对象的代码没有实际作用,还会输出无关内容
  • 细节问题:运算符选项里乘法标注为大写M,判断逻辑里是小写m,未做输入大小写兼容;只生成了1个随机数,不符合两个随机变量出题的要求
修复后的完整代码
import random

# 打印操作选项
print("你偏好的数学运算:\n加法(a) \n减法(s) \n乘法(m) \n除法(d)")

class MathQuiz:
    def choose(self):
        # 接收用户输入并转小写,兼容大小写输入
        user_choice = input("选择一个运算符开始答题:").lower()
        # 校验输入合法性
        while user_choice not in ['a','s','m','d']:
            user_choice = input("输入无效,请从a/s/m/d中选择:").lower()
        return user_choice

    def generate_question(self, op):
        # 生成两个1-10的随机数
        num1 = random.randint(1, 10)
        num2 = random.randint(1, 10)
        # 除法特殊处理,保证可以整除,避免小数计算歧义
        if op == 'd':
            num1 = num1 * num2
        # 映射运算符符号
        op_map = {'a':'+', 's':'-', 'm':'*', 'd':'/'}
        print(f"题目:{num1} {op_map[op]} {num2} = ?")
        # 计算正确答案
        if op == 'a':
            correct = num1 + num2
        elif op == 's':
            correct = num1 - num2
        elif op == 'm':
            correct = num1 * num2
        elif op == 'd':
            correct = num1 // num2
        # 接收用户答案
        try:
            user_ans = int(input("请输入你的答案:"))
        except ValueError:
            print("输入无效,请输入整数答案")
            return
        # 判断对错并输出结果
        if user_ans == correct:
            print("恭喜你,答对了!")
        else:
            print(f"答错了,正确答案是:{correct}")

# 实例化运行程序
quiz = MathQuiz()
user_op = quiz.choose()
quiz.generate_question(user_op)
功能说明
  • 支持加减乘除四种运算选择,自动兼容用户输入大小写
  • 随机生成1-10之间的两个整数出题
  • 除法运算默认生成可整除的题目,避免小数计算歧义
  • 接收用户输入的答案,自动判断对错并给出正确结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:45:04