Python - Mal funcionamiento de funciones

 
Vista:

Mal funcionamiento de funciones

Publicado por Juan (4 intervenciones) el 23/05/2018 11:00:28
Buenos días a todos.

Me gustaría exponer un problema que me ha surgido al desarrollar unas funciones en Python. Por si es necesario, diré que uso Python 3.6.

Resulta que defino una función que devuelve la potencia de dos números. El código es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
def potencia(base, exponente):
 
    solucion = base ** exponente
 
    return solucion
 
 
a = float(input('Introduce a: '))
b = float(input('Introduce b: '))
 
potencias = potencia(a, b)
 
print('La potencia es: {0}'.format(potencias))

El resultado de ejecutar esta función lo indico a continuación con varios ejemplos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Introduce a: 2
Introduce b: 2
La potencia es: 4.0
 
Introduce a: -2
Introduce b: 2
La potencia es: 4.0
 
Introduce a: 2
Introduce b: -2
La potencia es: 0.25
 
Introduce a: -2
Introduce b: -2
La potencia es: 0.25
 
Introduce a: 2
Introduce b: .5
La potencia es: 1.4142135623730951
 
Introduce a: 2
Introduce b: -.5
La potencia es: 0.7071067811865476

Como puede verse, la función es correcta (al menos en estos ejemplos). Pero ahora se pone interesante la cosa. Cuando realizo potencias de bases negativas con exponentes decimales.

1
2
3
4
5
6
7
Introduce a: -2
Introduce b: 0.2
La potencia es: (0.9293164906031477+0.6751879523998812j)
 
Introduce a: -2
Introduce b: -0.2
La potencia es: (0.7042902001692478-0.5116967824803669j)

Esto ya es grave, porque la raiz quinta de un número negativo no es compleja. Es un número, que en este caso resulta: -1.148 y -0.870 respectivamente.

Si alguien puede aportar un poco de luz, sería de agradecer.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder