【问题标题】:Square root inside a square root python平方根python中的平方根
【发布时间】:2013-11-13 19:46:13
【问题描述】:

我想知道如何编写代码显示平方根内的平方根。这是我目前所拥有的:

number=float(input("Please enter a number: "))
square = 2*number**(1/2)**(1/3)
print(square)

但这不对,因为我从计算器中得到的数字不同。

【问题讨论】:

  • 将某物提高到 (1/3) 是立方根,而不是平方根。 (a^(1/2))^(1/2) 等价于 a^(1/4)。所以你可以做第四个根。
  • 也许检查你的操作顺序,你到底想计算什么? docs.python.org/2/reference/…
  • python输出的是什么,你的计算器输出的是什么?这将有助于指出您的问题所在。

标签: python square-root


【解决方案1】:

导入math并使用math.sqrt(math.sqrt(number))

import math
number=float(input("Please enter a number: "))
square = math.sqrt(math.sqrt(number))
print(square)

【讨论】:

  • 注意其中一个是立方根
  • @DonaldMiner 目前尚不清楚这是否是 OP 的错误,或者他们的描述是否不正确。如果我们按照描述进行,这是正确的。如果我们按照代码进行,那么我们将需要一个立方根函数。无论哪种方式,OP都需要澄清。
【解决方案2】:

它看起来像是在做1/3 的平方根(即1/2),然后将其应用于number。您需要强制执行操作顺序,因为它是从右到左评估指数运算符。

square = 2*(number**(1/2))**(1/3)

通过添加括号,您强制它先取平方根,然后取立方根。


您正在使用 Python3,但对于未来的读者,Python2 会将 1/21/3 评估为 0。要改变这一点,你可以改用浮点数:

square = 2*(number**(1.0/2.0))**(1.0/3.0)

【讨论】:

  • 1/21/3 在 Python2 中是 0
  • 他正在使用 Python 3,从 print 语句中可以明显看出。但是是的,我会详细说明python2
  • @DonaldMiner 这不一定很明显,因为他们可能使用的是from __future__ import print_function 而不是from __future__ import division
  • 为了测试运行,我输入 1,答案应该是 1.61887。我得到 2.0 作为答案。
  • 好吧,算一下:2 x 1 ^ .5 ^ .33 将给你 2。(1 的平方根是 1,1 的立方根是 1,乘以 2 是 2 )。也许您需要更清楚地了解您要计算的内容。
【解决方案3】:

如果你想找到一个数的平方根的平方根,你可以使用一些代数看到((x)^0.5)^0.5) 简化为x^(0.25)

所以你可以选择x**(0.25)

或者您可以执行以下操作:

import math
math.sqrt(math.sqrt(x))

另一件事,在你的代码中你说:

square = 2*number**(1/2)**(1/3)

在标题中你说“平方根 python 中的平方根”。这向我表明,您可能在代码中犯了错字,或者在命名问题的标题时出错。如果您确实想找到平方根的平方根,那么我上面的建议应该足以做到这一点。

【讨论】:

  • 注意其中一个是立方根
  • 是的,我确实看到了,问题标题和描述都在谈论平方根的平方根而不是立方根,所以我认为这就是我们想要的。刚刚对我的答案进行了编辑以解决这个问题。
猜你喜欢
  • 2015-12-23
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-08
相关资源
最近更新 更多