负一到N的标准函数,其中N是整数

时间:2014-03-03 15:57:39

标签: python scipy

这实际上适用于任何语言,但我目前正在使用python和scipy。

我知道有一种简单的方法可以做到这一点。就像1 - 2*(N & 1)之类的东西一样。但这很难读,并且可能已经在某个地方有了标准功能。

4 个答案:

答案 0 :(得分:3)

如果我理解你想要的东西,那就把负面的东西加到N的力量上:

print (-1) ** N

答案 1 :(得分:2)

在python中,您可以使用**运算符。所以,是的,有一个标准功能(好吧,操作员),它很容易阅读。

因此,对于您的示例,您可以仅举例:

>>> N = 3
>>> value = (-1) ** N
>>> print(value)
-1

或者,如果您不想使用运算符,而是使用函数,则可以执行以下操作:

>>> import math
>>> N = 3
>>> value = math.pow((-1), 3)
>>> print(value)
-1

然而,这似乎毫无意义,因为-1任何东西的力量总是等于-1如果它是奇数而1则是偶数。

答案 2 :(得分:2)

Python的三元运算符版本让你把它写成:

-1 if n % 2 else 1

这是一个很好的,可读的内衬。

答案 3 :(得分:1)

我认为您在询问是否有一种简单的方法来定义它,以便不必实际使用指数算法。

def minusone(n)
  if n%2 == 0:
    retval = 1
  else;
    retval = -1
  return retval

您的原始建议可能会更好

1 - 2*(n%2)