Python 3.x 定义六个函数并用python打印输出

Python 3.x 定义六个函数并用python打印输出,python-3.x,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 impo

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

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)

我是否正确使用了这些函数?或者有很多地方需要更改吗?

您需要为
r
h
的函数添加参数

您有一个额外的参数:

volume1=((4/3)*pi*r)**3))
您需要修复:

main():

代码中有许多语法错误:

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
的值。你已经做到了!当您在函数末尾说return
volume1
时,这意味着如果您在其他地方打印此函数,将从函数访问的唯一参数是您返回的参数,在本例中为
volume1
。通过删除尝试打印出的所有其他局部变量,对它们执行同样的操作

我已经测试了这段代码,但是如果您不想看我写的所有东西,您不必看,完整工作的代码如下:

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






def main():
    r=int (input("Enter the radius:"))
    h=int (input("Enter the heights:"))
    print ("Sphere volume:",sphereVolume(r))
    print ("Sphere Surface:",sphereSurface(r))
    print ("Cylinder Volume:" , cylinderVolume(r,h))
    print ("Cylinder Surface:",cylinderSurface(r,h))
    print ("Cone Volume:",coneVolume(r,h))
    print ("Cone Surface:",coneSurface(r,h))

main()

@第四:CR工作人员改进了工作代码。如果代码不起作用,或者即使OP不确定它是否起作用,它也不适用于那里。@DSM感谢您的澄清:)我应该说如何在每个函数中添加参数?例如,用def sphereVolume(r)替换def sphereVolume():