[ Foro de Python ]
Buenas, tengo una duda con el siguiente script:
hola = False
chau = False
prueba = hola or chau
print (prueba)
hola = True
print(prueba)
prueba = hola or chau
print (prueba)
Cuando lo corro tira:
False
False
True
¿No deberían ser las últimas dos True? ¿Por qué prueba se vuelve True recién cuando la vuelvo a asignar valores (que son los mismos que tenía antes)? No lo entiendo
Muchas gracias
No, el comportamiento es el esperable: si no "recalculas" el valor de "prueba", los cambios en "hola" o en "chau" no se reflejarán en "prueba", no están enlazadas, sino que se toma su valor puntual en un instante concreto.
Gracias por responderme.
Imaginé que el programa realizaba lo esperable y el error era mío, recién estoy empezando. Por tu respuesta entonces voy a reformular: no deberían quedar enlazadas automáticamente? ¿Por qué no lo hacen? Y, más importante, se pueden enlazar? Con saber qué función sirve me ayudaría mucho, no tengo problema en seguir buscando información una vez que sepa cómo hacerlo. Muchas gracias
No se pueden enlazar. En una hoja de cálculo, los valores de las celdas se recalculan cuando modificas alguna de las casillas de las que dependen. Pero en un programa no: si haces suma = x+y, se toman los valores de las variables x e y en ese instante, pero si x cambia, no se recalcula el valor de suma, a no ser que tú la vuelvas a calcular explícitamente en una orden posterior.
Con las funciones, el comportamiento cambia, sí se calculan cada vez que las llamas, pero si estás empezando, imagino que aún no habrás llegado a estudiar nada de funciones.
Como imagino que ya sabes, en estas páginas también tienes un tutorial de introducción a Python:
https://aprendeaprogramar.com/cursos/ver.php?id=7
En efecto, recién estoy empezando, las funciones todavía me cuestan, más que nada usar bien el return. Pero si sirven para hacer eso entonces pronto podré encontrarle la vuelta. Muchas gracias por la ayuda, realmente se valora :)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)