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
的值。你已经做到了!当您在函数末尾说returnvolume1
时,这意味着如果您在其他地方打印此函数,将从函数访问的唯一参数是您返回的参数,在本例中为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():