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

Python编写儿童球池装球数计算程序报变量未定义错误如何解决

错误原因
  • 变量作用域规则限制:Python中函数内部定义的变量属于局部变量,仅在当前函数范围内生效,函数执行结束后就会被回收。你在volume_of_ball_pit里定义的volume_pit、volume_of_ball里定义的volume_ball都属于对应函数的局部变量,balls_required函数无权直接访问,因此触发变量未定义报错。
  • 没有接收函数返回值:你调用了两个体积计算函数,但没有将返回的计算结果赋值给变量,计算完成的体积值没有被保存,后续逻辑自然无法调用。
  • 不符合开发规范:需求明确要求两个体积计算函数需要通过参数接收输入值,你写的函数是在内部读取用户输入,和要求不符。
  • 计算公式存在错误:球池容积公式遗漏了半径的平方计算,单球体积公式遗漏了半径的三次方计算,即使变量问题修复,最终结果也会出错。
修复方案

按照需求修正后的可运行代码如下:

import math
packing_density = 0.75

# 接收球池半径、高度参数,返回球池容积
def volume_of_ball_pit(radius_pit, height_pit):
    return math.pi * (radius_pit ** 2) * height_pit

# 接收海洋球半径参数,返回单球体积
def volume_of_ball(radius_ball):
    return (4/3) * math.pi * (radius_ball ** 3)

# 计算所需海洋球总数量
def balls_required(pit_r, pit_h, ball_r):
    volume_pit = volume_of_ball_pit(pit_r, pit_h)
    volume_ball = volume_of_ball(ball_r)
    # 球数量取整数
    return int((volume_pit / volume_ball) * packing_density)

# 代入题目指定参数输出结果
print("所需海洋球总数量:", balls_required(1, 0.2, 0.05))

运行后输出结果为900,符合计算逻辑。

内容的提问来源于stack exchange,提问作者Can't get my programs to work

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:36:03