3  Entrada y Salida por Terminal

3.1 Entrada por terminal (input())

Para asignar a una variable un valor introducido por el usuario en la consola se utiliza la instrucción

input(mensaje) : Muestra la cadena mensaje por la terminal y devuelve una cadena con la entrada del usuario.

Advertencia

El valor devuelto siempre es una cadena, incluso si el usuario introduce un dato numérico.

>>> language = input('¿Cuál es tu lenguaje favorito? ')
¿Cuál es tu lenguaje favorito? Python
>>> language
'Python'
>>> age = input('¿Cuál es tu edad? ')
¿Cuál es tu edad? 20
>>> age
'20'

3.2 Salida por terminal (print())

Para mostrar un dato por la terminal se utiliza la instrucción

print(dato1, ..., sep=' ', end='\n', file=sys.stdout)

donde

  • dato1, ... son los datos a imprimir y pueden indicarse tantos como se quieran separados por comas.
  • sep establece el separador entre los datos, que por defecto es un espacio en blanco ' '.
  • end indica la cadena final de la impresión, que por defecto es un cambio de línea \n.
  • file indica la dirección del flujo de salida, que por defecto es la salida estándar sys.stdout.
>>> print('Hola')
Hola
>>> name = 'Alf'
>>> print('Hola', name)
Hola Alf
>>> print('El valor de pi es', 3.1415)
El valor de pi es 3.1415
>>> print('Hola', name, sep='')
HolaAlf
>>> print('Hola', name, end='!\n')
Hola Alf!

3.3 Salida formateada por terminal (cadenas f)

Para construir cadenas que combinen texto con el valor de variables o expresiones de una forma más cómoda y legible que con format(), Python ofrece las cadenas f (f-strings). Se escriben anteponiendo la letra f a la cadena, y dentro de ella se pueden incluir variables o expresiones entre llaves {}, que serán sustituidas por su valor.

>>> name = 'Alf'
>>> age = 20
>>> print(f'Me llamo {name} y tengo {age} años')
Me llamo Alf y tengo 20 años
>>> print(f'El año que viene tendré {age + 1} años')
El año que viene tendré 21 años

Al igual que con format(), dentro de las llaves se puede añadir, tras el signo :, un formato para controlar la alineación, la anchura o el número de decimales con los que se muestra el valor:

  • {valor:n} : Alinea valor a la izquierda rellenando con espacios por la derecha hasta los n caracteres.
  • {valor:>n} : Alinea valor a la derecha rellenando con espacios por la izquierda hasta los n caracteres.
  • {valor:^n} : Alinea valor en el centro rellenando con espacios por la izquierda y por la derecha hasta los n caracteres.
  • {valor:nd} : Formatea valor como un número entero con n caracteres rellenando con espacios en blanco por la izquierda.
  • {valor:n.mf} : Formatea valor como un número real con un tamaño de n caracteres (incluido el separador de decimales) y m cifras decimales, rellenando con espacios en blanco por la izquierda.
>>> pi = 3.141592
>>> print(f'Pi vale {pi:8.2f}')
Pi vale     3.14
>>> dia = 'Lunes'
>>> temperatura = 21.4
>>> print(f'{dia:<10}{temperatura:>6.1f} ºC')
Lunes       21.4 ºC
Advertencia

Las cadenas f solo están disponibles a partir de Python 3.6.