tutorial libros descargar curso completo books book python evaluation operator-precedence

python - libros - ¿Por qué 1+++ 2=3?



python web pdf (7)

1 + (+ (+ 2)) = 3

1 - (-2) = 3

1 - (- (- 2)) = -1

¿Cómo evalúa Python la expresión 1 +++ 2?

Cuantos ''+'' entre los que puse, está imprimiendo 3 como la respuesta. Por favor, ¿alguien puede explicar este comportamiento?

Y para 1--2 está imprimiendo 3 y para 1 --- 2 está imprimiendo -1


Creo que está siendo analizado como, la primera + como una operación binaria (agregar), y el resto como operaciones unarias (hacer positivo).

1 + (+(+2))



Los extra + ''s no son incrementos (como ++ a o a ++ en c ++). Solo están mostrando que el número es positivo.

No hay tal operador ++. Sin embargo, hay un operador unario y un operador unario. El operador unario + no tiene efecto en su argumento. El operador unario niega su operador o lo multiplica por -1.

+1

-> 1

++1

-> 1

Esto es lo mismo que + (+ (1))

1+++2

-> 3 Porque es lo mismo que 1 + (+ (+ (2))

Del mismo modo, puedes hacer --1 para significar - (-1) que es +1.

--1

-> 1

Para completar, no hay * opeartor unario. Entonces * 1 es un error. Pero hay un operador ** que es potencia de, toma 2 argumentos.

2**3

-> 8


Piénselo como 1 + (+1 * (+ 1 * 2))). El primer operador + es y los signos más que siguen son signo del segundo operando (= 2).

Al igual que 1 --- 2 es igual que 1 - - (- (2)) o 1- (-1 * (- 1 * (2))


Probando Unary Plus y Unary menos :

El operador unario - (menos) produce la negación de su argumento numérico.

El operador unario + (más) cede su argumento numérico sin cambios.

>>> +2 2 >>> ++2 2 >>> +++2 2 >>> -2 -2 >>> --2 2 >>> ---2 -2 >>> 1+(++2) 3


Tu expresión es la misma que:

1+(+(+2))

Cualquier expresión numérica puede estar precedida por - para hacerla negativa, o + para no hacer nada (la opción está presente para la simetría). Con signos negativos:

1-(-(2)) = 1-(-2) = 1+2 = 3

y

1-(-(-2)) = 1-(2) = -1

Veo que aclaró su pregunta para decir que proviene de un fondo C. En Python, no hay operadores de incremento como ++ y -- en C, que probablemente fue la fuente de su confusión. Para incrementar o disminuir una variable i o j en Python use este estilo:

i += 1 j -= 1