Zybooks Python球体体积挑战 第二组测试用例失败排查
问题根因
代码的核心错误是未按照球体体积公式对半径做三次方运算,仅传入了半径的一次值参与计算。
球体体积的正确公式为 $V = \frac{4}{3}\pi r^3$,即半径需要计算三次幂后再参与乘法,但原有错误计算逻辑为:
sphere_volume = (4.0/3.0) * pi * sphere_radius
这段代码等价于计算 $V=\frac{4}{3}\pi r$,和正确公式差了半径的两次幂乘积。
测试用例表现解释
- 输入半径为1.0时,由于1的任意次幂结果均为1,即使没有计算三次方,输出结果
(4.0/3.0)*3.14159*1.0 ≈4.19刚好和预期值匹配,因此误通过了该测试用例。 - 输入半径为5.5时,错误计算逻辑得到的结果为
(4.0/3.0)*3.14159*5.5≈23.04,和正确结果偏差极大:正确计算需要先算半径三次方5.5**3 = 166.375,代入公式得到(4.0/3.0)*3.14159*166.375≈696.91,和预期输出一致。
修复方式
将体积计算语句补全三次方运算即可,修正后的代码为:
pi = 3.14159 sphere_volume = 0.0 sphere_radius = float(input()) # 补全半径三次方计算 sphere_volume = (4.0/3.0) * pi * (sphere_radius ** 3) print('Sphere volume: {:.2f}'.format(sphere_volume))
你也可以用sphere_radius * sphere_radius * sphere_radius替换sphere_radius **3,计算结果完全一致。
内容的提问来源于stack exchange,提问作者Dat Krazy Kook
相关产品推荐
相关产品推荐

