Input y print con Python

Veamos las funciones input() y print() de Python con diferentes ejemplos. La traducción de los dos nombres puede darnos una ligera idea de las funciones que realizan.

  • Función input() en Python → entrada.
  • Función print() en Python → imprimir.

Función input() con Python

Con la función input() podemos introducir datos desde el teclado a nuestra aplicación. Independientemente del valor que introduzcamos, este va a ser tratado como tipo string.

Veámoslo con un ejemplo:

Solicitamos que se introduzca un valor y lo guardaremos en una variable, después mediante la función type() vamos a mostrar el tipo de dato que contiene nuestra variable.

Introduciendo el valor → Hola

variable = input('Introduzca un valor: ')

type(variable)
# <class 'str'>

Introduciendo el valor → 12.12342

variable = input('Introduzca un valor: ')

type(variable)
# <class 'str'>

Vemos que al introducir los dos valores el resultado al consultar el tipo de dato que se almacenó es el mismo, tipo de datos string <class ‘str’>

Si quisiésemos solicitar dos operandos para realizar una suma, estos se sumarían como cadena.

En el siguiente ejemplo introduciré los valores 10 y 23 para que sean sumados.

numero = input('Introduzca un número: ')
otro_numero = input('Introduzca otro número: ')
resultado = numero + otro_numero

print(resultado)
# 1023
print(type(resultado))
# <class 'str'>

Vemos que el resultado ha sido 1023 porque ha sumado los dos valores tratándolos como datos de tipo string.

¿Qué debemos hacer para que nuestros valores sean tratados como números enteros? Tendremos que pasar la función int() o float() a los valores introducidos según las necesidades de nuestro programa.

Para este ejemplo voy a pasarles la función int() a la variable que contiene ya el valor y veremos que la suma de números enteros se realiza correctamente y que el tipo de datos que almacena la variable resultado es de tipo int.

numero = input('Introduzca un número: ')
otro_numero = input('Introduzca otro número: ')
resultado = int(numero) + int(otro_numero)

print(resultado)
# 33
print(type(resultado))
# <class 'int'>

Podríamos haber almacenado directamente en las variables un valor de tipo int, en lugar de hacer la conversión en la operación.

numero = int(input('Introduzca un número: '))
otro_numero = int(input('Introduzca otro número: '))
print(type(numero))
# <class 'int'>

resultado = numero + otro_numero

print(resultado)
# 33
print(type(resultado))
# <class 'int'>

Podemos incluir en nuestra solicitud de introducción de datos un salto de línea o una tabulación añadiendo al final de nuestra cadena \n para salto de línea y \t para la tabulación.

input('Introduce un valor: \n')
# Introduce un valor: 
# _

input('Introduce un valor: \t')
# Introduce un valor:    _

Función print() con Python

Con la función print() de Python podemos mostrar datos en nuestra consola o terminal.

Función print() por defecto print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

De forma contraria a input(), una vez que imprimimos algo en pantalla, print() de forma automática realiza un salto de línea.

print('Hola mundo')
# Hola mundo

Aunque función print() puede recibir varios parámetros, antes de nada, vamos a ver qué pasa si recibe varias cadenas como primer parámetro.

print('Patata' 'Pera' 'Tomate' 'Bebida' 'Manzana' 'Pan')
# PatataPeraTomateBebidaManzanaPan

Ahora vamos a separar mediante una coma todas las cadenas que hemos enviado como parámetro. Veremos que todos los datos se van a separar con un espacio en blanco, ya que este es el separador sep=’ ‘ que tiene la función por defecto (aunque no veamos).

print('Patata', 'Pera', 'Tomate', 'Bebida', 'Manzana', 'Pan')
# Patata Pera Tomate Bebida Manzana Pan

Veamos qué pasa si incluimos el parámetro sep y lo modificamos con este valor sep=’ → ‘. En efecto: todas las palabras aparecen separadas por este nuevo separador que hemos incluido al llamar a la función print() de Python.

print('Patata', 'Pera', 'Tomate', 'Bebida', 'Manzana', 'Pan', sep=' → ')
# Patata → Pera → Tomate → Bebida → Manzana → Pan

Existe otro parámetro llamado end que podemos incluir cuando realizamos una llamada a la función print(). Este parámetro, por defecto, tiene asignado end=’\n’ (salto de línea). Si no indicamos otra cosa, siempre que imprima algo en pantalla realizará un salto de línea de forma automática.

Vamos a modificar este parámetro con otros valores y a ver qué pasa.

print('Badajoz es la provincia más grande de España')
# Badajoz es la provincia más grande de España
# _

print('Badajoz es la provincia más grande de España', end='\t')
# Badajoz es la provincia más grande de España
#     _

print('Badajoz es la provincia más grande de España', end=' ')
# Badajoz es la provincia más grande de España _

print('Badajoz es la provincia más grande de España', end='------')
# Badajoz es la provincia más grande de España------

print('Badajoz es la provincia más grande de España', end='\n Todos los días se aprende algo')
# Badajoz es la provincia más grande de España
# Todos los días se aprende algo

Dentro de la llamada a la función print() podemos incluir variables mediante las cadenas f, también conocidas como f strings para Python.

variable = ' ♫ '
print(f'Tomate{variable}Cebolla{variable}Sal{variable}Azúcar')

# Tomate ♫ Cebolla ♫ Sal ♫ Azúcar

En los parámetros sep y end también podemos incluir cadenas f, lo que da unas posibilidades infinitas.

separador = '▓'
final = '███'
print('Tomate', 'Cebolla', 'Sal', 'Azúcar', sep=f'{separador}', end=f'{final}')

# Tomate▓Cebolla▓Sal▓Azúcar███

Puedes ver más información sobre la función print() de Python en la documentación oficial.

Existen dos parámetros más que podemos modificar al llamar a la función print(). Si no los modificamos, de la misma forma que pasaba con los anteriores, se enviarán los valores por defecto aunque no los veamos.

  • Parámetro file (por defecto file=sys.stdout)

Debe ser un objeto con un método de escritura, si no especificamos nada, se utiliza sys.stdout.

  • Parámetro flush (por defecto flush=False)

Nuestro archivo es en general el encargado de indicar si la salida se almacena en el buffer, aunque mediante flush=True estaríamos vaciando la secuencia a la fuerza.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *