Entrada de Datos. Python
SOLUCIONARIO
Entrada de Datos. Python
2026-04-26
Por
Occam's Razor

#!/usr/bin/env python3
import sys

n, t = (input("Introduce dos números separados por espacios ? ").
        strip().split(' '))
n , t = [int(n), int(t)]

print ("Has introducido " , n , " y " , t)

a = map(int, input("Introduce 10 números separados por espacios ?\n").
        strip().split(' '))

for i in a:
    sys.stdout.write (str(i) + " ")

sys.stdout.flush()

print ()

A diferencia de con Perl, en Python necesitamos dar más información sobre los tipos de los datos que estamos manejando… pero a parte de eso las cosas no son mucho más diferentes.

Python nos permite leer información del usuario utilizando la función input (Python3) o raw_input (Python2)… (BASIC alguien?). Esta función lee toda la entrada como una sola cadena de caracteres incluyendo el retorno de carro final.

Podemos eliminar el retorno de carro final con el método strip de la clase string el cual nos permite eliminar los espacios (lo que incluye tabuladores y retornos de carro) al final de la cadena. Luego el método split nos permite obtener fácilmente los valores que nos proporcionen separados por espacios, o cualquier otro separador que elijamos.

SABÍAS QUE

Python permite retornar varios valores en una misma operación. En nuestro ejemplo, podemos almacenar los dos valores que nos retorna split en distintas variables en un solo comando. De la misma forma podemos convertirlos en enteros

 

El resultado de strip son cadenas de caracteres. Si queremos utilizarlas como número debemos convertirlas utilizando int().

Para un par de valores, resulta práctico asignar variables y trabajar como en la primera parte del programa (donde solo leemos 2 valores), especialmente cuando los valores tienen significado especial en el programa. Sin embargo cuando el número de valores es elevado o indeterminado resulta más práctico utilizar la función map.

Esta función nos revuelve una lista, tras aplicar una determinada función a cada uno de los elementos de un iterable. En el ejemplo anterior, estamos aplicando int(), a la lista que nos retorna split.

SOY NOVATO

En Python, un iterable es un objeto que implementa ciertos métodos que nos permiten recorrer los elementos almacenados en ellos. En otras parablas, un iterable es un objeto del que podemos obtener un iterador que nos permite recorrer todos los elementos almacenados en el mencionado objeto. Esto nos permite acceder a los datos independientemente de la forma física en la que se almacenan o la forma lógica en la que se organizan.

En Python, las listas y tuplas son tipos iterables.

 

Esta sería la versión del programa para Python 2.7

#!/usr/bin/env python2
import sys

n, t = (raw_input("Introduce dos numeros separados por espacios ? ").
        strip().split(' '))
n , t = [int(n), int(t)]

print "Has introducido " , n , " y " , t

a = map(int, raw_input("Introduce 10 numeros separados por espacios ?\n").
        strip().split(' '))

for i in a:
    sys.stdout.write (str(i) + " ")

sys.stdout.flush()

print 

Python maneja los errores usando excepciones. En nuestro ejemplo, si introducimos valores incorrectos, por ejemplo un nombre en lugar de un número, Python generará una excepción ValueError. Para manejar los errores de ese tipo debemos capturar la excepción, lo cual podemos hacer utilizando un bloque try... catch. Aquí tenéis un ejemplo:

n, t = (input("Introduce dos números separados por espacios ? ").
        strip().split(' '))
try:
    n , t = [int(n), int(t)]
except ValueError:
    print ("Introduce numeros validos")
    sys.exit(1)

En este caso simplemente mostramos un mensaje de error y terminamos. Podéis modificar el programa fácilmente para que os vuelva a pedir los números, en lugar de terminar.

SOY NOVATO

Las excepciones son la forma moderna de manejar errores en los lenguajes más recientes. Si bien, pueden resultar contraproducentes en muchos casos, son una forma elegante de manejar los errores. Cuando usamos excepciones, el propio lenguaje, o nuestro código, emite excepciones cuando se detecta una determinada condición (normalmente una condición de error). Si la parte del programa decide no hacer nada con la excepción, el programa terminará con un error.

De lo contrario, el programa pone el código que puede generar la excepción (en nuestro caso la función int) en un constructor especial del lenguaje que normalmente se llama try... ALGO donde ALGO varia con los lenguajes y en Python es except. Si el código dentro del bloque try lanza una excepción, el programa se interrumpirá en ese punto y el flujo pasará inmediatamente al bloque except. Este tipo de operación es común en todos los lenguajes que soportan excepciones.

 

SUMARIO

  • En Python los datos del usuario los leemos como cadenas de caracteres que luego debemos convertir al tipo adecuado
  • La entrada de usuario se lee como una única línea de texto incluyendo el retorno de carro
  • El método split nos permite trocear fácilmente el texto de usuario usando el delimitador que elijamos.

SOBRE Occam's Razor
Somos una revista libre que intenta explicar de forma sencilla conceptos tecnológicos y científicos de los que no podemos escapar. Al final, todo es más fácil de lo que parece!

 
Tu publicidad aquí :)