Parte 10 — Las respuestas “sí” y “no” siguen siendo texto
input() no produce booleanos
Este código:
python terminal
cuenta_activa = input("¿La cuenta está activa? ")guarda texto.
Si el usuario escribe:
text terminal
Trueel valor será:
python terminal
"True"No el booleano:
python terminal
TrueComprobar el tipo
python terminal
cuenta_activa = input("¿La cuenta está activa? ")
print(cuenta_activa)
print(type(cuenta_activa))Resultado posible:
text terminal
True
<class 'str'>No utilizar bool(input()) para esto
Podría parecer que esta solución funciona:
python terminal
cuenta_activa = bool(input("¿La cuenta está activa? "))Pero tiene un comportamiento engañoso.
Cualquier texto no vacío se convierte en True.
python terminal
bool("sí")produce:
python terminal
TruePero también:
python terminal
bool("no")produce:
python terminal
TruePorque "no" sigue siendo un texto no vacío.
Conversión correcta más adelante
La estrategia correcta será:
- Recibir texto.
- Limpiarlo.
- Compararlo con respuestas válidas.
- Decidir si corresponde a
TrueoFalse.
Ejemplo futuro:
python terminal
respuesta = input("¿La cuenta está activa? ").strip().lower()
if respuesta == "sí":
cuenta_activa = True
else:
cuenta_activa = FalseTodavía no estudiaremos esta estructura.
La veremos en el capítulo de condiciones.