我正在编写一个程序,根据直径和高度来计算圆锥的体积,但我一直在研究
TypeError: cone() missing 1 required positional argument: 'height'
我该如何解决这个问题?
def main():
measure = measurement()
vol = cone(measure)
print("\nThe volume of the cone is,", "%0.2f" % (vol))
def measurement():
diameter = eval(input("Enter the diameter of the cones base:"))
height = eval(input("Enter the height of the cone:"))
return diameter, height
def cone(diameter, height):
pi = 3.14
radius = diameter / 2
volume = (pi * (radius**2) * height) / 3
return volume
main()
答案 0 :(得分:2)
您需要拆分measurement
返回的两个值。您有两种选择:
使用元组赋值并将两个结果传递给cone
:
diameter, height = measurement()
vol = cone(diameter, height)
Python希望measurement()
现在在序列中返回两个值,并将这两个值分别分配给diameter
和height
,然后将这两个值分别传递给{{1} }。
使用参数扩展;这要求Python将序列中的所有值应用为单独的参数:
cone()
请注意measure = measurement()
vol = cone(*measure)
参数前的*
。
至于您的measure
功能:您不需要使用measurement()
;它带来了安全风险。相反,使用eval()
将用户输入解释为实数:
float()
另请参阅Asking the user for input until they give a valid response了解更多高级用户输入技术。