2015-05-10 14 views
9
def cube(number): 
    return number^3 
print cube(2) 

bym spodziewałbym cube(2) = 8, ale zamiast Dostaję cube(2) = 1Jak zrobić potęgowanie w python?

Co robię źle?

+0

próbowałeś: numer x Numer X? Nie koduję w pythonie, więc wątpię w obecność^jako operatora mocy. –

+1

Nota boczna: '**' jest wykładnicza, ale robi mnożenie, gdy znasz wykładnik (tj. 'X * x' i' y * y * y' zamiast 'x ** 2' i' x ** 3') jest szybszy. – Matthew

Odpowiedz

33

^ to operator xor.

** to potęgowanie.

2**3 = 8

+1

Istnieje również wbudowany [pow] (https://docs.python.org/3/library/functions.html#pow) i [math.pow] (https://docs.python.org/3/library /math.html#math.pow). – Teepeemm

6

Można również korzystać z biblioteki math. Na przykład:

import math 
x = math.pow(2,3) # x = 2 to the power of 3 
0

jeśli chcesz powtórzyć to kilka razy - należy rozważyć użycie numpy:

import numpy as np 

def cube(number): 
    "can be also called with a list" 
    return np.exp(number,3) 

print cube(2) 
print cube([2,8])