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...@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@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....@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....@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.quint...@gmail.com<mailto:johnny.alonso.quint...@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....@python.org<mailto:gmail....@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 <kikocorre...@gmail.com<mailto:kikocorre...@gmail.com>> escribió: El 23 de diciembre de 2016, 15:06, Johnny Alonso <johnny.alonso.quint...@gmail.com<mailto:johnny.alonso.quint...@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@python.org<mailto:Python-es@python.org> https://mail.python.org/mailman/listinfo/python-es _______________________________________________ Python-es mailing list Python-es@python.org<mailto:Python-es@python.org> https://mail.python.org/mailman/listinfo/python-es _______________________________________________ Python-es mailing list Python-es@python.org<mailto:Python-es@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.
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es