为什么要使用def power(x)和math.pow(x,n)?

时间:2016-01-27 21:59:42

标签: python

这是我需要完成的事情:

  

编写将打印出整数1到10的Python脚本   他们的平方根和立方根。

     

使用列表:range (1,11,1)来定义数字。

     

使用math.pow(x,n)功能。

     

要计算平方根和立方根,请定义计算这些值的函数幂(def power (x)等)。

     

然后,以xsqrt(x)cuberoot(x)的形式打印出来,   低于另一个(print命令应该在power之外   功能)。

     

利用for命令[例如,for i in range (1,11,1):]和   每个值i都会调用函数power(x)来完成   计算并返回结果,然后打印出结果   屏幕。

这是我的代码:

list=range(1,11,1)

for i in list:
    print i
for i in list:
    print i**.5
for i in list:
    print i**(1.0/3)

所以显然我没有使用任何必需的命令,因为当我尝试使用math.pow时,它一直告诉我字符串参数必须是字符串或数字。我需要帮助,我迷失了。至少指出我的方向。因为即使我的代码有效,我也知道它不会被接受。

2 个答案:

答案 0 :(得分:1)

我将通过此

给你一个提示
  

要计算平方根和立方根,请定义计算这些值的函数幂(def power (x)等)

它并不代表def power(x),它代表def sqrt(x)def cuberoot(x) return math.pow(x, <power>)代表各自的权力。

math.pow(x, n)正常工作,但您需要import math

还应该注意到

for i in list:
    print i
for i in list:
    print i**.5
for i in list:
    print i**(1.0/3)

应该这样编写(除非按照说明使用正确的代码)。最重要的是:不要用变量覆盖list函数。

for i in range(1, 11, 1):
    print i
    print i**.5
    print i**(1.0/3)

或者这可能是因为它以x,sqrt(x),cuberoot(x)的形式表示&#34;一个低于另一个&#34;

for i in range(1, 11, 1):
    print i, i**.5, i**(1.0/3)

答案 1 :(得分:0)

您声明您不确定如何使用电源定义并返回元组。你应该阅读def和return的定义,但现在是。

import math
def power(x):
    sq = math.pow(x, 0.5)
    cub = math.pow(x, 1.0/3)
    return(sqr, cub)

现在使用

从循环内部调用
(sqrt, cube) = power(i)
print(i, sqrt, cube)

请注意,定义内部和调用中的名称不同,以表明它们位于不同的范围内。即使你给他们相同的名字,它也会奏效。