[Python-es] Python 3.5.2

Juan Pablo Fernández Gutiérrez jpfernandez en udem.edu.co
Mar Ene 17 10:25:19 EST 2017


Hola, Jhonny Alonso,

Matemáticamente las expresiones -22 y -(22) son iguales porque la potenciación tiene prevalencia sobre la multiplicación y el parentesis no está alterando esa prevalencia, de pronto lo que deseabas escribir era (-2)2  en el cual debe hacerse la potencia del número -2.

Saludos,

Juan Pablo.

De: Python-es [mailto:python-es-bounces+jpfernandez=udem.edu.co en python.org] En nombre de Johnny Alonso
Enviado el: sábado, 24 de diciembre de 2016 11:52 a.m.
Para: 'La lista de python en castellano' <python-es en python.org>
Asunto: Re: [Python-es] Python 3.5.2

Hola Ricardo y Armando, si las expresiones que muestran son código Python, lamento decirles que están bastante lejos de la realidad.
Están comparando expresiones con operadores diferentes y que el resultado en ocasiones les coincida es mera casualidad.
En Python el operador ** es potenciación y ^ equivale a la operación XOR entre bist.
>>> -2**2
-4
>>> -(2^2)
0
Armando ni siquiera coinciden los resultados, dándote el beneficio de la duda, y utilizas el ^ como operador de potenciación, entonces:
La expresión -(2^2) en Python equivale a:
>>> -(2**2)
-4
Aquí los resultados con el operador ** coinciden, -4 en ambos casos, y lo acepto como correcto desde el punto de vista del lenguaje, pero no desde el punto de vista matemático, pues matemáticamente las expresión -2² es diferente a -(2²).
Los desarrolladores de lenguajes son libres de incorporar lo que desean, esto también aplica para la precedencia de operadores y el sentido de evaluación de las expresiones matemáticas, pero de igual forma lo documentan para que los usuarios no incurramos en errores asumiendo que todos cumplen las reglas de evaluación matemática al pie de la letra.

Conjetura: Python no implementa el operador menos unario, pero si el binario el cual tiene menor precedencia que el de potenciación, así:
-x**n es interpretado en Python como 0-x**n.
>>> -2**2
-4
>>> 0 - 2**2
-4

Saludos, Johnny Alonso


De: Python-es [mailto:python-es-bounces+johnny.alonso.quintero=gmail.com en python.org] En nombre de Armando Ortega
Enviado el: sábado, 24 de diciembre de 2016 6:24 a. m.
Para: La lista de python en castellano
Asunto: Re: [Python-es] Python 3.5.2

Buenos días.

Ricardo tiene razón.

-2**2 = -(2^2) = -4
(-2)**2 = -2^2 = 4

Un saludo.
El 24/12/16 a las 04:54, Johnny Alonso escribió:
Hola Ricardo, Por definición “La potencia es resultado de tomar un número como factor 2 o más veces”. Aritmética de Baldor, capítulo XV, Elevación a potencias y sus operaciones inversas, página 152.

-2**2 = -2 * -2

Leyes de la potenciación:
Todo número elevado a la cero  es igual a 1, x**0 = 1
-2**0 = 1

Todo número elevado a un exponente par (múltiplo de 2) es positivo, en caso contrario se mantiene el signo del número.
-2**2 = 4
-2**3 = -8

Lo anterior lo puedes verificar en la calculadora de un celular IPhone o Samsung, incluso en la de Windows.

Es evidente que en Python es así, y lo acepto porque así está documentado, pero es algo para tener en cuenta cuando programas en él.

Ricardo, con respecto a las matemáticas en este caso, estas equivocado.

Saludos, Johnny Alonso
De: Python-es [mailto:python-es-bounces+johnny.alonso.quintero=gmail.com en python.org] En nombre de Ricardo Cárdenes
Enviado el: viernes, 23 de diciembre de 2016 5:04 p. m.
Para: La lista de python en castellano
Asunto: Re: [Python-es] Python 3.5.2

No, no es una excepción.

En matemáticas, la exponenciación tiene prioridad:

  -x^2 = -(x^2)

Los lenguajes de programación que implementan este operador, suelen adherirse a la regla (Python, PHP, D, Ruby, ...). Luego tienes disidentes como JavaScript, pero bueno...

Así que no, Python no es "una excepción a las reglas algebraicas".

Saludos,
Ricardo

2016-12-23 5:31 GMT-10:00 Johnny Alonso <johnny.alonso.quintero en gmail.com<mailto:johnny.alonso.quintero en gmail.com>>:
Gracias Kiko, me queda claro, es excepción a las reglas algebraicas en Python.

De: Python-es [mailto:python-es-bounces+johnny.alonso.quintero<mailto:python-es-bounces%2Bjohnny.alonso.quintero>=gmail.com en python.org<mailto:gmail.com en python.org>] En nombre de Kiko
Enviado el: viernes, 23 de diciembre de 2016 10:08 a. m.
Para: La lista de python en castellano
Asunto: Re: [Python-es] Python 3.5.2



El 23 de diciembre de 2016, 16:05, Kiko <kikocorreoso en gmail.com<mailto:kikocorreoso en gmail.com>> escribió:


El 23 de diciembre de 2016, 15:06, Johnny Alonso <johnny.alonso.quintero en gmail.com<mailto:johnny.alonso.quintero en gmail.com>> escribió:
Hola todos, estoy iniciándome en Python y creo que se presenta un fallo de precedencia con el operador menos unario:
>>> -2**2  # probable error
-4
>>> -2 * -2  # Ok
4
>>> pow(-2, 2)  # Ok
4
>>>
Por favor, si alguien sabe si esto está documentado podría indicarme en donde lo encuentro, de lo contrario, podrían reportarlo a la fundación, yo no lo se hacer.


Se evalúa antes el operador potencia: https://docs.python.org/3/reference/expressions.html#unary-arithmetic-and-bitwise-operations
Antes he ido muy rápido: https://docs.python.org/3/reference/expressions.html#the-power-operator



Saludos, JohnnyAlonso

_______________________________________________
Python-es mailing list
Python-es en python.org<mailto:Python-es en python.org>
https://mail.python.org/mailman/listinfo/python-es



_______________________________________________
Python-es mailing list
Python-es en python.org<mailto:Python-es en python.org>
https://mail.python.org/mailman/listinfo/python-es




_______________________________________________

Python-es mailing list

Python-es en python.org<mailto:Python-es en python.org>

https://mail.python.org/mailman/listinfo/python-es







[Universidad de Medellín]

La información contenida en este correo electrónico, está diseñada para uso exclusivo de la persona o entidad a la que va dirigida, y puede contener datos que sean confidenciales. Si el lector de este mensaje no es el destinatario previsto, empleado o agente responsable, se le notifica que cualquier divulgación, distribución o copia de esta comunicación está estrictamente prohibida. Si usted ha recibido este mensaje por error, por favor notifíquelo al correo del cual fue enviado.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20170117/576a1f70/attachment.html>


Más información sobre la lista de distribución Python-es