sqrt()只需要2个参数(给定1个)

时间:2011-12-01 19:53:00

标签: python

    def sqrt (n, one):
        floating_point_precision = 10*16
        n_float = float(( n * floating_point_precision) // one) / floating_point_precision
        x = (int(floating_point_precision * math.sqrt(n_float)) * one) // floating_point_precision
        n_one = n * one
        while 1:
            x_old = x
            x = ( x + n_one // x) // 2
            if x == x_old:
                return x

print "The newton estimate of", mynum, "is", sqrt(mynum)

Traceback (most recent call last):
  File "/Users/Brett/Desktop/Python/squareroot.py", line 21, in <module>
    print "The newton estimate of", mynum, "is", sqrt(mynum)
TypeError: sqrt() takes exactly 2 arguments (1 given)

4 个答案:

答案 0 :(得分:3)

您的sqrt函数有两个参数,但您只提供了一个参数。似乎第二个参数应该是值“1”。

print "The newton estimate of", mynum, "is", sqrt(mynum, 1.0)

答案 1 :(得分:2)

您已将sqrt定义为带有两个参数的函数。稍后,您的代码会引用您的函数:sqrt。尝试更改"/Users/Brett/Desktop/Python/squareroot.py", line 21以使用math.sqrt,或为其提供第二个参数。

答案 2 :(得分:2)

您的sqrt()函数有两个参数,none。但是,在最后一行中,您只传递一个参数。

答案 3 :(得分:2)

肯定只是你宣布

def sqrt(n,one):

有2个参数,并使用

调用它
sqrt(mynum)

这是一个参数