python函数参数

python函数参数,python,function,arguments,Python,Function,Arguments,我正试图编写一个简单的计算器,以给定数量的四面体,用户输入其边缘和给定数量的水(以升为单位),并计算有多少四面体可以充满水。我已经定义了一个函数来计算一个四面体的体积,但是当我试图写第二个四面体的时候,我失败了 water = int(raw_input("water:")) #Enter the amount of water in litres n = raw_input("Enter the number of tetrahedrons:") tetrahedrons = [] for

我正试图编写一个简单的计算器,以给定数量的四面体,用户输入其边缘和给定数量的水(以升为单位),并计算有多少四面体可以充满水。我已经定义了一个函数来计算一个四面体的体积,但是当我试图写第二个四面体的时候,我失败了

water = int(raw_input("water:"))  #Enter the amount of water in litres
n = raw_input("Enter the number of tetrahedrons:")
tetrahedrons = []
for i in range(int(n)):
    edge = raw_input("Enter the edge of a tetrahedron:")
    tetrahedrons.append(int(edge))
    tetrahedrons.sort()

#full_tetrahedrons = 0  # counter for the full tetrahedrons

def fill_tetrahedron(num):
    volume = (int(num) ** 3) // (6.0 * (2 ** 0.5))
    volume_in_l = volume / 1000

def tetrahedron_filled(tetrahedrons, water):
    if water >= 0:
        for number in tetrahedrons:
            value = fill_tetrahedron(number)
            water = water - value
            full_tetrahedrons = 0
            full_tetrahedrons += 1
        return full_tetrahedrons

print tetrahedron_filled(tetrahedrons, water)
编辑:


好的,我已经纠正了我在参数上的错误,但是现在无论我输入什么值,我总是得到1作为答案。

您只将一个参数传递给四面体填充函数


这个函数有两个参数——四面体和水

您已将四面体填充定义为需要两个参数,并且仅使用一个参数来调用它。您可能打算打印四面体填充的四面体,而不是水。@David Robinson谢谢!我很笨。。现在我得到了一个不同的错误:D文件new11.py,第24行,四面体填充的完整四面体+=1 UnboundLocalError:之前引用的局部变量“full_四面体”assignment@Anton:将完整的_四面体=0移动到循环外,使其正好位于四面体中的for编号之前:,否则,当您返回其值时,它将始终为1。