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

mi aspetterei cube(2) = 8, ma invece mi sto cube(2) = 1Come faccio a fare esponenziazione in python?

Che cosa sto facendo di sbagliato?

+0

hai provato: numero x x numero? Io non codice in python, quindi dubito della presenza di^come operatore di potenza. –

+1

Nota laterale: '**' è esponenziale, ma fa moltiplicazione quando conosci l'esponente (cioè 'x * x' e' y * y * y' invece di 'x ** 2' e' x ** 3') è più veloce. – Matthew

risposta

33

^ è l'operatore xor.

** è esponenziazione.

2**3 = 8

+1

C'è anche il builtin [pow] (https://docs.python.org/3/library/functions.html#pow) e [math.pow] (https://docs.python.org/3/library /math.html#math.pow). – Teepeemm

6

È inoltre possibile utilizzare la libreria math. Per esempio:

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

se si desidera ripetere più volte - si dovrebbe considerare l'utilizzo di 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]) 
Problemi correlati