Python utiliza la función input() para recibir datos del usuario. Por defecto, input() siempre devuelve una cadena de texto. Si necesitas interpretar estos datos como números u otros tipos, deberás realizar una conversión explícita.
Lectura de datos en una sola línea
-
Lectura de cadenas de texto:
Para leer una cadena de texto y mostrar un mensaje al usuario:
# Solicita al usuario que ingrese un valor y lo almacena en la variable 'entrada_usuario' entrada_usuario = input("Por favor, introduce un valor: ")Para leer una línea y dividirla en múltiples variables basándose en un delimitador (como un espacio):
# Lee una línea y la divide por espacios, asignando las partes a 'var1' y 'var2' var1, var2 = input().split() # Lee una línea y la divide por comas, asignando las partes a 'var1' y 'var2' var1, var2 = input().split(',') -
Lectura de números:
Para leer un número entero:
# Lee una línea y la convierte a entero, almacenándola en 'num_entero' num_entero = int(input())Para leer un número de punto flotante:
# Lee una línea y la convierte a flotante, almacenándola en 'num_flotante' num_flotante = float(input())Para leer varios números enteros separados por espacios en una sola línea:
# Lee una línea, la divide por espacios y convierte cada parte a entero # Asigna los enteros resultantes a 'num_a' y 'num_b' num_a, num_b = map(int, input().split())
Lectura de un número indeterminado de enteros en una línea
Si no sabes cuántos números ingresará el usuario en una línea, puedes leerlos y almacenarlos en una lista:
# Lee una línea con números separados por espacios, los convierte a enteros
# y los almacena en una lista llamada 'lista_numeros'
lista_numeros = list(map(int, input().split()))
Lectura de múltiples líneas
Primero se lee la cantidad de líneas, y luego se leen las líneas subsiguientes:
-
Leer un número por línea:
# Lee la cantidad de números a ingresar cantidad = int(input()) # Crea una lista para almacenar los números numeros_ingresados = [] # Itera 'cantidad' veces para leer cada número for _ in range(cantidad): valor = int(input()) numeros_ingresados.append(valor)Una forma más concisa usando comprensión de listas:
# Lee la cantidad de números a ingresar cantidad = int(input()) # Lee 'cantidad' números y los almacena en la lista 'numeros_ingresados' numeros_ingresados = [int(input()) for _ in range(cantidad)] -
Leer tres números por línea, almacenados en listas separadas:
# Lee la cantidad de conjuntos de tres números num_filas = int(input()) # Inicializa listas vacías para cada componente componente_x = [] componente_y = [] componente_z = [] # Lee cada fila de tres números for _ in range(num_filas): x, y, z = map(int, input().split()) componente_x.append(x) componente_y.append(y) componente_z.append(z)
Salida de Datos con print()
La función print() se utiliza para mostrar información en la consola. Puede mostrar múltiples elementos separados por comas, los cuales se imprimirán con un espacio entre ellos por defecto.
Salida simple de elementos
var_num1 = 10
var_num2 = 25
print(var_num1, var_num2) # Salida: 10 25
var_texto = "Hola Mundo"
print(var_num1, var_num2, var_texto) # Salida: 10 25 Hola Mundo
Salida formateada
Python ofrece varias maneras de formatear la salida, siendo las más comunes las f-strings y el método format() de las cadenas.
Usando f-strings (formato literal de cadenas)
Las f-strings son una forma moderna y legible de incrustar expresiones dentro de cadenas de texto.
valor_a = 15
valor_b = 3.14159
print(f'El valor de a es {valor_a} y el valor de b es {valor_b}')
# Salida: El valor de a es 15 y el valor de b es 3.14159
Usando el método format()
Este método permite crear cadenas con marcadores de posición (llaves {}) que luego son reemplazados por los argumentos proporcionados.
-
Formateo básico por orden:
libro = "Ficciones" precio = 75.50 cadena_formateada = 'Compré el libro "{}" por {:.2f}'.format(libro, precio) print(cadena_formateada) # Salida: Compré el libro "Ficciones" por 75.50Si no se especifican índices, los argumentos se asignan en orden a los marcadores de posición.
-
Formtaeo con índices de posición:
Puedes especificar qué argumento usar en cada marcador de posición usando su índice numérico.
precio_total = 75.50 nombre_articulo = "Ficciones" # El {0} se reemplaza por el primer argumento (precio_total), y {1} por el segundo (nombre_articulo) cadena_formateada = 'Gasté {0:.2f} en el libro: "{1}". ¡Solo {0:.2f}!'.format(precio_total, nombre_articulo) print(cadena_formateada) # Salida: Gasté 75.50 en el libro: "Ficciones". ¡Solo 75.50! -
Formateo con argumentos de palabra clave:
También puedes usar nombres de variables como argumentos de palabra clave.
precio_item = 75.50 titulo_libro = "Ficciones" cadena_formateada = 'El costo fue {p}, y el título es "{t}". ¡Un gran precio: {p}!'.format(p=precio_item, t=titulo_libro) print(cadena_formateada) # Salida: El costo fue 75.50, y el título es "Ficciones". ¡Un gran precio: 75.50!
Formateo de números
-
Conversión a diferentes bases numéricas:
numero = 58 # Decimal (predeterminado si no se especifica) print('{:d}'.format(numero)) # Salida: 58 # Binario print('{:b}'.format(numero)) # Salida: 111010 # Hexadecimal (minúsculas) print('{:x}'.format(numero)) # Salida: 3a # Hexadecimal (mayúsculas) print('{:X}'.format(numero)) # Salida: 3A -
Control de precisión y ancho:
Para mostrar un entero como flotante:
print('{:f}'.format(58)) # Salida: 58.000000Especificar un ancho mínimo para la salida. Si el número tiene menos dígitos, se rellenará con espacios a la izquierda (para números) o derecha (para cadenas).
# Ancho mínimo de 10 caracteres, rellenado con espacios a la izquierda print('{:10}'.format(58)) # Ancho mínimo de 10 caracteres, rellenado con espacios a la derecha print('{:10}'.format('58'))Controlar el número de dígitos después del punto decimal (precisión):
valor_pi = 3.1415926 # Mostrar 3 dígitos significativos en total print('{:.3}'.format(valor_pi)) # Salida: 3.14 # Mostrar 3 dígitos después del punto decimal print('{:.3f}'.format(valor_pi)) # Salida: 3.142 (redondeado)Combinar ancho y precisión:
# Ancho total de 7 caracteres, con 3 dígitos decimales print('{:7.3f}'.format(valor_pi)) # Salida: 3.142 (espacios a la izquierda)Extraer los primeros N caracteres de una cadena y/o formatearlos con un ancho:
texto_largo = 'HelloWorld' # Extraer los primeros 5 caracteres print('{:.5}'.format(texto_largo)) # Salida: Hello # Extraer los primeros 5 caracteres y formatear en un ancho de 10 print('{:10.5}'.format(texto_largo)) # Salida: Hello -
Separador de miles y formato de fecha:
Usar coma como separador de miles:
numero_grande = 12345678 print('{:,}'.format(numero_grande)) # Salida: 12,345,678Formatear objetos de fecha y hora:
from datetime import datetime fecha_hora = datetime(2018, 8, 18, 18, 18, 18) print('{:%Y-%m-%d %H:%M:%S}'.format(fecha_hora)) # Salida: 2018-08-18 18:18:18
Al igual que con las f-strings, puedes especificar qué argumento usar en el formato, ya sea por índice o por nombre de varible:
# Usando índice
print('{0:b}'.format(58)) # Salida: 111010
# Usando nombre de variable
print('{valor_hex:x}'.format(valor_hex=58)) # Salida: 3a