Soy un novato total en la programación y estoy haciendo mis primeros pinitos con Python. Y me he encontrado con un código a cuyo resultado no le encuentro explicación. El código es este:
x = -12
x -= 1 if x>0 else x+1
print(x)
# -1
Según lo entiendo debería imprimirse el resultado -11, pero como se ve me da -1. Lo he comprobado en diferentes programas y plataformas de Python e invariablemente me da -1, cosa que no puedo entender.
Sin embargo, si lo escribo de la siguiente manera
x = -12
x = x - 1 if x>0 else x+1
print(x)
# -11
sí me da el esperado resultado de -11. Entonces mi preguntas es: ¿no se supone que las expresiones "x -= 1" y "x = x -1" son equivalentes y deberían arrrojar el mismo resultado? ¿Por qué el primer código da el, para mí, inexplicable resultado de -1?
Un saludo.