简单的语法问题。
在数学中如果我有两个数字3和2并且我希望计算3到2的幂,那么不需要符号但是我写了两个小符号。在Python
中,此操作似乎由**
语法表示。
>>> 3**2
9
如果我想转向另一个方向并计算9的第2根,那么在数学中我需要使用符号:
Python中是否有一个简写符号,类似于**
实现了这一点,即{。{}}。或者我是否需要使用2<symbol>9
模块?
答案 0 :(得分:39)
x
的第n个根是x^(1/n)
,因此您可以9**(1/2.0)
找到9的第2个根,例如。通常,您可以将x的第n个根计算为:
x**(1/float(n))
您也可以1.0/n
代替1/float(n)
。这是必需的,结果是float
而不是int
。
答案 1 :(得分:2)
另外:x**(n**-1)
,与x**(1/float(n))
答案 2 :(得分:2)
如果您希望在功能上而不是使用中缀运算符(**
符号)应用此操作,则可以将base和exponent作为参数传递给pow
函数:
In [23]: (9**(0.5)) == pow(9, 0.5)
Out[23]: True
我也喜欢寻找this Infix hack in Python的新用途,尽管它比一个重型解决方案更有趣。但是你可以通过以下方式有效地制作自己的个人符号:
class Infix:
def __init__(self, function):
self.function = function
def __ror__(self, other):
return Infix(lambda x, self=self, other=other: self.function(other, x))
def __or__(self, other):
return self.function(other)
def __rlshift__(self, other):
return Infix(lambda x, self=self, other=other: self.function(other, x))
def __rshift__(self, other):
return self.function(other)
def __call__(self, value1, value2):
return self.function(value1, value2)
root_of = Infix(lambda x,y: y**(1.0/x))
print 2 |root_of| 9
3.0
答案 3 :(得分:1)
基本上sqrt(9)相当于9 ^ .5
>>>9**.5
3.0
答案 4 :(得分:1)
有。这只是**
=)
任何第n个根都是1/n
的取幂,所以为了得到平方根9,你使用9**(1/2)
(或9**0.5
)来获取立方根,你使用{{ 1}}(我们不能用更简单的部分写),并获得第n个根,9 ** (1/3)
。
另请注意,从Python 3开始,不再需要为整数添加句点以使它们成为浮点数。假设9 ** (1/n)
按照您实际期望的方式工作,给出1/3
作为结果,而不是零。对于旧版本的Python,你必须记住使用那个时期(但也很关键,为什么你要使用遗留版本的编程语言)
答案 5 :(得分:1)
你应该做
16**(0.5) #If you print it, you get 4, So you can use this formula.
答案 6 :(得分:1)
def nthrootofm(a,n):
return pow(a,(1/n))
a=81
n=4
q=nthrootofm(a,n)
print(q)
pow()函数带有两个参数。
答案 7 :(得分:1)
您还可以使用一些对数:
第N个根:
X = exp(log(n)/x)