36- User Input en Python

Acordeón de los Índices

Índice de los temas



Lección: [Número de Lección] - Python User Input, User Input

⌨️ Python User Input

En Python, la función input() se utiliza para obtener información del usuario a través de la línea de comandos (terminal o consola).

Cuando se llama a la función input(), el programa se detiene y espera a que el usuario escriba algo y presione la tecla Enter. El texto que el usuario introduce es devuelto por la función como una cadena de texto (string).

Sintaxis de `input()`:

                    entrada_del_usuario = input("Mensaje para el usuario (opcional): ")
                    
                

El "Mensaje para el usuario" es una cadena opcional que se muestra al usuario antes de que se detenga el programa para esperar su entrada. Es una buena práctica incluir un mensaje claro para indicarle al usuario qué se espera que introduzca.

Ejemplo: Obteniendo el nombre del usuario

                    nombre = input("Introduce tu nombre: ")
print(f"Hola, {nombre}!")
                    
                

En este ejemplo, el programa mostrará el mensaje "Introduce tu nombre: " y esperará a que el usuario escriba su nombre y presione Enter. El texto introducido se almacenará en la variable nombre y luego se utilizará para imprimir un saludo personalizado.

Importante: La entrada siempre es una cadena

Es crucial recordar que la función input() siempre devuelve la entrada del usuario como una cadena de texto. Si necesitas que la entrada sea de otro tipo (por ejemplo, un número entero o un decimal), debes convertirla explícitamente utilizando funciones como int() o float().

Ejemplo: Obteniendo la edad del usuario (como número entero)

                    edad_str = input("Introduce tu edad: ")
try:
    edad = int(edad_str)
    print(f"Tienes {edad} años.")
except ValueError:
    print("¡Error! Debes introducir un número entero para la edad.")
                    
                

En este caso, primero obtenemos la edad como una cadena y luego intentamos convertirla a un entero usando int(). Si la conversión falla (por ejemplo, si el usuario introduce texto), se manejará la excepción ValueError.

La función input() es fundamental para crear programas interactivos que pueden recibir datos del usuario y adaptar su comportamiento en consecuencia.

⌨️ User Input

En el tema anterior, introdujimos la función básica input() para obtener datos del usuario. Ahora, exploraremos algunas consideraciones y técnicas adicionales relacionadas con la entrada del usuario en Python.

Prompting al usuario:

Es fundamental proporcionar mensajes claros y concisos al usuario para que sepa qué tipo de información se espera. Un buen "prompt" (mensaje) puede prevenir errores y mejorar la experiencia del usuario.

Ejemplo: Prompting específico

                    nombre = input("Por favor, introduce tu nombre completo: ")
edad_str = input("Introduce tu edad en años (solo números): ")
email = input("Introduce tu dirección de correo electrónico: ")
print(f"Hola, {nombre}! Tienes {edad_str} años y tu correo es {email}.")
                    
                

Al ser específico en los prompts, reducimos la ambigüedad para el usuario.

Validación de la entrada del usuario:

Dado que la función input() devuelve una cadena, es crucial validar la entrada del usuario si esperas un tipo de dato específico o un formato particular. Ya vimos un ejemplo de conversión a entero con manejo de errores. Aquí hay más ejemplos de validación:

Ejemplo: Validando si la entrada es un número

                    while True:
    entrada = input("Introduce un número: ")
    if entrada.isdigit():
        numero = int(entrada)
        print(f"Has introducido el número: {numero}")
        break
    else:
        print("¡Entrada inválida! Por favor, introduce solo dígitos.")
                    
                

Este bucle while continúa pidiendo entrada al usuario hasta que introduce una cadena que contiene solo dígitos, utilizando el método isdigit().

Ejemplo: Validando un formato específico (ej. código postal)

                    import re

while True:
    codigo_postal = input("Introduce tu código postal (5 dígitos): ")
    if re.match(r'^\d{5}$', codigo_postal):
        print(f"Código postal válido: {codigo_postal}")
        break
    else:
        print("¡Formato inválido! El código postal debe tener 5 dígitos.")
                    
                

Aquí, utilizamos una expresión regular (con el módulo re) para verificar si la entrada tiene exactamente 5 dígitos.

Consideraciones de seguridad:

En algunos contextos (especialmente al interactuar con sistemas operativos o bases de datos a través de la entrada del usuario), es importante tener en cuenta posibles riesgos de seguridad como la "inyección de comandos" o la "inyección SQL". Siempre debes sanear o validar cuidadosamente la entrada del usuario para prevenir vulnerabilidades.

La entrada del usuario es una parte esencial de muchos programas interactivos. Dominar cómo obtener, validar y manejar esta entrada de manera segura y efectiva es una habilidad importante en la programación en Python.




Publicar un comentario

0 Comentarios