CODEZEROINTERACTIVE

Chapter 7 / 15

Parte 10 — Las respuestas “sí” y “no” siguen siendo texto

Entrada de datos con input(), conversiones, respuestas del usuario y formulario interactivo de MiniFinance.

Lesson 1137%

11 / 22 lessons in this chapter

Parte 10 — Las respuestas “sí” y “no” siguen siendo texto

1 / 1 in this part

Current chapter

Chapter 7 — input(): recibir información del usuario

Self-paced

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
True

el valor será:

python terminal
"True"

No el booleano:

python terminal
True

Comprobar 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
True

Pero también:

python terminal
bool("no")

produce:

python terminal
True

Porque "no" sigue siendo un texto no vacío.


Conversión correcta más adelante

La estrategia correcta será:

  1. Recibir texto.
  2. Limpiarlo.
  3. Compararlo con respuestas válidas.
  4. Decidir si corresponde a True o False.

Ejemplo futuro:

python terminal
respuesta = input("¿La cuenta está activa? ").strip().lower()

if respuesta == "sí":
    cuenta_activa = True
else:
    cuenta_activa = False

Todavía no estudiaremos esta estructura.

La veremos en el capítulo de condiciones.