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

CS50P问题集1数学解释器代码报错:check50测试未通过

修复CS50P数学解释器代码的check50测试问题

问题根源分析

  1. 重复输出与类型报错:代码最后一行print(round(exp, 1))是核心问题:
    • exp是split()返回的字符串列表,round()仅支持数值类型,因此抛出type list doesn't define __round__ method错误
    • 前面已打印计算结果,这一行会导致输出两行内容,不符合check50要求的单一行输出规范

修正后的代码

exp = input("Expression: ").split(" ")

x, y, z = exp

n1 = float(x)
n2 = float(z)

result = 0.0
if y == "+":
    result = n1 + n2
elif y == "-":
    result = n1 - n2
elif y == "*":
    result = n1 * n2
elif y == "/":
    result = n1 / n2

print(round(result, 1))

关键修改点

  • 新增result变量存储计算结果,避免重复计算逻辑
  • 将原代码中直接打印计算结果的逻辑改为赋值给result,最后统一对数值结果执行round()并输出,确保格式符合要求
  • 删除错误的print(round(exp, 1))行,彻底解决类型错误和重复输出问题

验证效果

输入1 + 1时,代码计算得到2.0,经round(result,1)处理后输出2.0,仅单一行内容,完全匹配check50的预期输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:12:09