定义六个函数并在python中打印输出

时间:2013-10-09 01:01:00

标签: python-3.x

所以问题是定义这六个函数

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)

我是否正确使用这些功能?还是有很多我需要改变的地方?

2 个答案:

答案 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)

您需要为rh的函数添加参数。

你有额外的支持:

volume1=((4/3)*pi*r)**3))

您需要修复:

main():