所以问题是定义这六个函数
def sphereVolume(r):
def sphereSurface(r):
def cylinderVolume(r,h):
def cylinderSurface(r,h):
def coneVolume(r,h):
def coneSurface(r,h):
编写一个程序,提示用户输入r和h的值,调用六个函数,然后打印结果。
我没有测试过这段代码,因为我目前的计算机上没有scite或python,但是我在记事本上创建了这段代码。
from math import pi
def sphereVolume():
volume1=((4/3)*pi*r)**3))
return volume1
def sphereSurface():
area1=(4*pi*r**2)
return area1
def cylinderVolume():
volume2=(pi*r**2*h)
return volume2
def cylinderSurface():
area2=(2*pi*r**2+2*pi*r*h)
return area2
def coneVolume():
volume3=((1/3)*pi*r**2*h)
return volume3
def coneSurface():
area3=(pi*r+pi*r**2)
return area3
main():
def main():
r=int (input("Enter the radius:"))
h=int (input("Enter the heights:"))
print ("Sphere volume:",sphereVolume(r),volume1)
print ("Sphere Surface:",sphereSurface(r),area1)
print ("Cylinder Volume:" , cylinderVolume(r,h),volume2)
print ("Cylinder Surface:",cylinderSurface(r,h),area2)
print ("Cone Volume:",coneVolume(r,h),volume3)
print ("Cone Surface:",coneSurface(r,h),area3)
我是否正确使用这些功能?还是有很多我需要改变的地方?
答案 0 :(得分:1)
您的代码中存在许多语法错误:
volume1=((4/3)*pi*r)**3)) (You don't need extra bracket at the end)
main(): (You called this function before you declared it, only call it after you've declared it and given it attributes)
print ("Sphere volume:",sphereVolume(r),volume1)
print ("Sphere Surface:",sphereSurface(r),area1)
print ("Cylinder Volume:" , cylinderVolume(r,h),volume2)
print ("Cylinder Surface:",cylinderSurface(r,h),area2)
print ("Cone Volume:",coneVolume(r,h),volume3)
print ("Cone Surface:",coneSurface(r,h),area3)
乍一看,这看起来可能都是正确的,但是对于你打印的每个函数,你给它一组不应该存在的参数(例如sphereVolume
有参数r
)。他们不应该在那里,因为你编程他们不要接受参数,所以你应该改变你的函数来接受参数,否则你会得到错误:
print ("Sphere volume:",sphereVolume(r),volume1)
TypeError: sphereVolume() takes 0 positional arguments but 1 was given
所以你的功能应该是这样的:
from math import pi
def sphereVolume(r):
volume1=((4/3)*pi*r)**3
return volume1
def sphereSurface(r):
area1=(4*pi*r**2)
return area1
def cylinderVolume(r,h):
volume2=(pi*r**2*h)
return volume2
def cylinderSurface(r,h):
area2=(2*pi*r**2+2*pi*r*h)
return area2
def coneVolume(r,h):
volume3=((1/3)*pi*r**2*h)
return volume3
def coneSurface(r,h):
area3=(pi*r+pi*r**2)
return area3
你需要给它们一组参数来使用,否则将变量r和h放在函数中是不正确的,因为 - 简单来说 - 它们没有被允许在那里。
最后,您需要删除从main()
中打印出的函数中获得的额外变量。因为它们是局部变量,所以除非返回它们,否则无法访问它们。我猜你试图做的就是你想要的这一行
print ("Sphere volume:",sphereVolume(r),volume1)
打印volume1
的值。你已经做到了!当您在函数末尾返回volume1
时,这意味着如果您在其他地方打印此函数,将从函数访问的唯一参数是您返回的参数,在本例中为{{1 }}。对于您尝试打印的所有其他局部变量,同样删除它们也是如此。
我已经测试过这段代码了,但是如果你不想看,我就不必看看我写的所有内容,完全正常的代码是这样的:
volume1
答案 1 :(得分:0)
您需要为r
和h
的函数添加参数。
你有额外的支持:
volume1=((4/3)*pi*r)**3))
您需要修复:
main():