Última actualización: 04 de diciembre de 2023

7.1. Entrada/Salida en Python

Los programas serían de muy poca utilidad si no fueran capaces de interaccionar con el usuario.

7.1.1. Entrada estándar

Para pedir información al usuario, debe utilizar las funciones integradas en el interprete del lenguaje, así como los argumentos de línea de comandos.

Definir la función input:

La función input() siempre devuelve un valor numérico:

>>> edad = input("Ana: ¿Que edad tiene usted?: ")
Ana: ¿Que edad tiene usted?: 38
>>> print(edad)
38

7.1.2. Entrada por script

En muchas practicas de este entrenamiento usted lo que ha hecho ha sido escribir código en el intérprete, y/o escribir/ejecutar pequeños programas Python, pero los programas informáticos no funcionan así.

Se basan en escribir todas las instrucciones en archivos llamados scripts, que no es más que guiones de instrucciones. Luego se envía este archivo al intérprete como parámetro desde la terminal de comando (si es un lenguaje interpretado como Python) y éste ejecutará todas las instrucciones en bloque.

A parte de ser la base del funcionamiento de los programas, la característica de los scripts es que pueden recibir datos desde la propia terminal de comando en el momento de la ejecución, algo muy útil para agregar dinamismo los scripts a través de parámetros personalizables.

A continuación, un ejemplo el cual simula a sala de chat del servicio LatinChat.com, validando datos de entradas numérico y tipo cadena de caracteres e interactuá con el usuario y en base a condicionales muestra un mensaje.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
print("\nSimulando a LatinChat")
print("=====================")

print("\nSala de Chat > De 30 a 40 años")
print("------------------------------\n")

print("Ana: ¿Cómo se llama usted?: ")
nombre = str(input("Yo: "))
print("Ana: Hola', nombre, ', encantada de conocerte :3")

print("Ana: ¿Que edad tiene usted?: ")
edad = int(input("Yo: "))
print("Usted tiene', edad, ', y yo ya no digo mi edad xD")

print('Ana: ¿Tiene WebCam?, ingrese "si" o "no", por favor!: ')
tiene_WebCam = str(input("Yo: "))

if tiene_WebCam in ("s", "S", "si", "Si", "SI"):
    print("Ponga la WebCam para verle :-D")
elif tiene_WebCam in ("n", "no", "No", "NO"):
    print("Lastima por usted :'( Adiós")

Truco

LatinChat.com, fue un servicio de Internet que ofrecía diversas salas de chat, muy popular en la década de los 90 en latinoamericana.

7.1.2.1. Scripts con argumentos

Para poder enviar información a un script y manejarla, tenemos que utilizar la librería de sistema sys. En ella encontraremos la lista argv que almacena los argumentos enviados al script.

Usted debe crear un script llamado entrada_argumentos.py con el siguiente contenido:

1
2
3
import sys

print(sys.argv)

Ejecuta el script llamado entrada_argumentos.py, de la siguiente forma:

$ python entrada_argumentos.py
['entrada_argumentos.py']

Al ejecutarlo puede ver que devuelve una lista con una cadena que contiene el nombre del script. Entonces, el primer argumento de la lista sys.argv (es decir, sys.argv[0]) es el propio nombre del script.

Ahora si intenta ejecutar el script de nuevo pasando algunos valores como números y cadenas de caracteres entre comillas dobles, todo separado por espacios:

$ python entrada_argumentos.py 300 43.234 "Hola Plone"
['entrada_argumentos.py', '300', '43.234', 'Hola Plone']

Cada valor que enviamos al script durante la llamada se llama argumento e implica una forma de entrada de datos alternativa sin usar la función input().

A continuación, un ejemplo el cual usa un script con la librería sys. El script recibe dos (02) argumentos: una cadena de caracteres y un número entero. Lo que hace es imprimir la cadena de caracteres tantas veces como le indique con el argumento de tipo número:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import sys

# Comprobación de seguridad, ejecutar sólo si se reciben 2
# argumentos realemente
if len(sys.argv) == 3:
    texto = sys.argv[1]
    repeticiones = int(sys.argv[2])
    for r in range(repeticiones):
        print(texto)
else:
    print("ERROR: Introdujo uno (1) o más de dos (2) argumentos")
    print("SOLUCIÓN: Introduce los argumentos correctamente")
    print('Ejemplo: entrada_dos_argumentos.py "Texto" 5')

Si quiere comprobar la validación de cuantos argumentos deben enviarme al script, ejecute el siguiente comando:

$ python entrada_dos_argumentos.py "Hola Plone"
ERROR: Introdujo uno (1) o más de dos (2) argumentos
SOLUCIÓN: Introduce los argumentos correctamente
Ejemplo: entrada_dos_argumentos.py "Texto" 5

Ahora si intenta ejecutar el script entrada_dos_argumentos.py con solo dos (2) argumentos, ejecutando el siguiente comando:

$ python entrada_dos_argumentos.py "Hola Plone" 3
Hola Plone
Hola Plone
Hola Plone

7.1.3. Salida estándar

La forma general de mostrar información por pantalla es mediante una consola de comando, generalmente podemos mostrar texto y variables separándolos con comas, para este se usa la sentencia print.

7.1.3.1. Sentencia print

Sentencia print evalúa cada expresión, devuelve y escribe el objeto resultado a la salida estándar de la consola de comando. Si un objeto no es un tipo cadena de caracteres, ese es primeramente convertido a un tipo cadena de caracteres usando las reglas para las conversiones del tipo. La cadena de caracteres (resultado o original) es entonces escrito.

Entonces para mostrar mensajes en pantalla, se utiliza el uso de la sentencia print.

Ejemplo del uso de la sentencia print:

>>> print("Ana: Hola", nombre, ", encantada de conocerte :3")
Ana: Hola Leonardo , encantado de conocerte :3

7.1.3.2. Formato de impresión de cadenas

En la sentencia print se pueden usar el formato de impresión alternando las cadenas de caracteres y variables:

>>> tipo_calculo = "raíz cuadrada de dos"
>>> valor = 2**0.5
>>> print(f"el resultado de {tipo_calculo} es: {valor}")
el resultado de raíz cuadrada de dos es: 1.41421356237

Ver también

Hay disponibles otras formas de aplicar formato de cadena de caracteres:

Nota

Una documentación completa del control de la salida de Python se encuentra en https://docs.python.org/es/3.11/tutorial/inputoutput.html

Importante

Usted puede descargar los códigos usados en esta sección haciendo clic en los siguientes enlaces: entrada_salida.py, entrada_argumentos.py y entrada_dos_argumentos.py.

Truco

Para ejecutar el código entrada_salida.py, entrada_argumentos.py y entrada_dos_argumentos.py, abra una consola de comando, acceda al directorio donde se encuentra ambos programas:

leccion8/
├── entrada_argumentos.py
├── entrada_dos_argumentos.py
└── entrada_salida.py

Si tiene la estructura de archivo previa, entonces ejecute el siguiente comando:

$ python entrada_salida.py
$ python entrada_argumentos.py
$ python entrada_dos_argumentos.py

Ver también

Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.


¿Cómo puedo ayudar?

¡Mi soporte está aquí para ayudar!

Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.

La hora aquí es actualmente 7:35 PM GMT-4.

Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Contrata mi increíble soporte profesional