Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

529
Vistas
¿Cómo funciona el orden de las operaciones en Python?

Mi pregunta se ve así:

 10-7//2*3+1

Se supone que debo resolver la ecuación.

Mi respuesta parece salir como 8 cuando uso PEMDAS:

 First its's 2*3 = 6; 10-7//6+1 second = 7//6= 1; 10-1+1 Third = 10-8 = 8;

Pero cuando lo pongo en python, obtengo un 2. ¿Por qué es así?

Parece que el orden de los programas es el siguiente:

 first: 7//2=3; 10-3*3+1 second: 3*3=9; 10-9+1 third:10-9+1= 2; 2

no lo entiendo

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

PEMDAS es P , E , MD , AS ; la multiplicación y la división tienen la misma precedencia , y lo mismo ocurre con la suma y la resta. Cuando aparece un operador de división antes de la multiplicación, la división va primero.

El orden en que se ejecutan los operadores de Python se rige por laprecedencia del operador y sigue las mismas reglas. Los operadores con mayor precedencia se ejecutan antes que los de menor precedencia, pero los operadores tienen la misma precedencia cuando están en el mismo grupo.

Para 10-7//2*3+1 , tiene 2 clases de operadores, de menor a mayor:

  • +, - (correlación con AS == suma y resta )
  • *, @, /, //, % (en correlación con MD , por lo tanto, multiplicación y división ).

Entonces // y * se ejecutan primero; la multiplicación y la división caen en el mismo grupo , no en un orden establecido aquí ( MD no significa que la multiplicación viene antes de la división):

 10 - ((7 // 2) * 3) + 1

Entonces 7 // 2 se ejecuta primero, seguido de la multiplicación por 3. Luego obtienes la resta de diez y sumas uno al final.


Hemos pasado por alto un tema que no afecta su caso particular, pero que es muy importante para escribir programas Python reales. PEMDAS no trata realmente sobre el orden de las operaciones; no decide en qué orden se evalúan las cosas. Realmente se trata de agrupar argumentos . PEMDAS dice que a + b + c * d se evalúa como (a + b) + (c * d) , pero no dice si se evalúa primero a + b o c * d .

En matemáticas, no importa lo que evalúes primero, siempre y cuando respetes la agrupación de argumentos. En Python, si evaluó b() y c() primero en a() + (b() + c()) solo porque están entre paréntesis, podría obtener un resultado completamente diferente, porque las funciones de Python pueden tener efectos secundarios. efectos

La evaluación de expresiones de Python funciona principalmente de izquierda a derecha. Por ejemplo, en a() + b() + (c() * d()) , el orden de evaluación es el siguiente:

  • a()
  • b()
  • el primero + , ahora que sus argumentos están listos
  • c()
  • d()
  • el * , ahora que sus argumentos están listos
  • el segundo + , ahora que sus argumentos están listos

Esto es a pesar de la alta precedencia de * y los paréntesis alrededor de la multiplicación.

over 4 years ago · Santiago Trujillo Denunciar

0

PEMDAS se expresa mejor como

 P Parentheses, then E Exponents, then MD Multiplication and division, left to right, then AS Addition and subtraction, left to right

Entonces, en tu expresión, la división debe hacerse antes de la multiplicación, ya que está a la izquierda de la multiplicación. Después de hacer eso, luego haga la resta y luego la suma.

over 4 years ago · Santiago Trujillo Denunciar

0

Esto está documentado aquí (Documentación de Python / Expresiones / Precedencia de operadores):

  • La multiplicación y la división, incluida la división de enteros, ocurren en el mismo nivel de precedencia, por lo que el orden está determinado por la dirección en la que se agrupan los operandos:
  • El orden de evaluación de todas las multiplicaciones y divisiones es de izquierda a derecha (como para la mayoría de las operaciones binarias, excepto la exponenciación).
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda