TypeError:cone()缺少1个必需的位置参数:' height'

时间:2014-11-30 02:12:26

标签: python

我正在编写一个程序,根据直径和高度来计算圆锥的体积,但我一直在研究

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()

1 个答案:

答案 0 :(得分:2)

您需要拆分measurement返回的两个值。您有两种选择:

  1. 使用元组赋值并将两个结果传递给cone

    diameter, height = measurement()
    vol = cone(diameter, height)
    

    Python希望measurement()现在在序列中返回两个值,并将这两个值分别分配给diameterheight,然后将这两个值分别传递给{{1} }。

  2. 使用参数扩展;这要求Python将序列中的所有值应用为单独的参数:

    cone()

    请注意measure = measurement() vol = cone(*measure) 参数前的*

  3. 至于您的measure功能:您不需要使用measurement();它带来了安全风险。相反,使用eval()将用户输入解释为实数:

    float()

    另请参阅Asking the user for input until they give a valid response了解更多高级用户输入技术。