#填满一个孩子的球坑所需的球的数量可以计算为:球坑的体积除以单个球的体积乘以包装密度。
#堆积密度一般为0.75。
#球坑的体积计算为: Pi (3.14) * radius2 *球坑高度。
#球的体积计算为:(4/3) * Pi (3.14) * radius3。
#编写一个函数,从两个参数返回球坑的体积:球坑半径和球坑高度。
#编写一个函数,从一个参数返回一个球的体积:球的半径。
#程序应该输出使用0.05m的球填充半径为1m,高度为0.2m的坑所需的球的数量。
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()我收到一个错误,我的变量没有定义,然而,我认为它已经在前面的子例程中完成了,有什么提示吗?
发布于 2021-10-16 13:59:21
您必须将函数的结果赋给变量
def balls_required():
volume_pit = volume_of_ball_pit()
volume_ball = volume_of_ball()
number_of_balls= (volume_pit/volume_ball)*packing_density发布于 2021-10-16 14:02:31
变量不能在不同的def (函数)中看到彼此,除非您将它们设置为全局的:
在代码的开头设置变量为全局变量:
global radius_pit,height_pit,volume_pit, number_of_balls,发布于 2021-10-16 14:09:39
首先,用公式(4/3) * pi * (r^3)计算球体(这里是球)的体积,用公式计算凹坑(我假设是圆柱体)的体积: pi * (r^2) *h
实际的代码应该是这样的:
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()这可能是解释器显示您的变量未定义的原因。
https://stackoverflow.com/questions/69596227
复制相似问题