首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有定义变量的错误,不知道发生这种情况的原因

没有定义变量的错误,不知道发生这种情况的原因
EN

Stack Overflow用户
提问于 2021-10-16 13:55:54
回答 3查看 54关注 0票数 0

#填满一个孩子的球坑所需的球的数量可以计算为:球坑的体积除以单个球的体积乘以包装密度。

#堆积密度一般为0.75。

#球坑的体积计算为: Pi (3.14) * radius2 *球坑高度。

#球的体积计算为:(4/3) * Pi (3.14) * radius3。

#编写一个函数,从两个参数返回球坑的体积:球坑半径和球坑高度。

#编写一个函数,从一个参数返回一个球的体积:球的半径。

#程序应该输出使用0.05m的球填充半径为1m,高度为0.2m的坑所需的球的数量。

代码语言:javascript
复制
    import math
    packing_density=0.75
    def volume_of_ball_pit():
      radius_pit= float(input("Input the radius of the pit"))
      height_pit= float(input("Input the height of the ball pit"))
      volume_pit= math.pi * radius_pit * height_pit
      return volume_pit

    def volume_of_ball():
      radius_ball= float(input("Input the radius of the ball"))
      volume_ball= (math.pi*(4/3))*radius_ball
      return volume_ball

    def balls_required():
      volume_of_ball_pit()
      volume_of_ball()
      number_of_balls= (volume_pit/volume_ball)*packing_density

    balls_required()

我收到一个错误,我的变量没有定义,然而,我认为它已经在前面的子例程中完成了,有什么提示吗?

EN

回答 3

Stack Overflow用户

发布于 2021-10-16 13:59:21

您必须将函数的结果赋给变量

代码语言:javascript
复制
def balls_required():
  volume_pit = volume_of_ball_pit()
  volume_ball = volume_of_ball()
  number_of_balls= (volume_pit/volume_ball)*packing_density
票数 1
EN

Stack Overflow用户

发布于 2021-10-16 14:02:31

变量不能在不同的def (函数)中看到彼此,除非您将它们设置为全局的:

在代码的开头设置变量为全局变量:

代码语言:javascript
复制
  global radius_pit,height_pit,volume_pit, number_of_balls,
票数 0
EN

Stack Overflow用户

发布于 2021-10-16 14:09:39

首先,用公式(4/3) * pi * (r^3)计算球体(这里是球)的体积,用公式计算凹坑(我假设是圆柱体)的体积: pi * (r^2) *h

实际的代码应该是这样的:

代码语言:javascript
复制
import math
packing_density=0.75
def volume_of_ball_pit():
    radius_pit= float(input("Input the radius of the pit"))
    height_pit= float(input("Input the height of the ball pit"))
    volume_pit= math.pi * radius_pit *radius_pit * height_pit
    return volume_pit

def volume_of_ball():
    radius_ball= float(input("Input the radius of the ball"))
    volume_ball= (math.pi*(4/3))*radius_ball**3
    return volume_ball

def balls_required():
    number_of_balls= (volume_of_ball_pit()/volume_of_ball())*packing_density
    print(number_of_balls)

if __name__ == '__main__':
    balls_required()

这可能是解释器显示您的变量未定义的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69596227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档