¿Leer cadena de varias lineas ingresada en consola de PYTHON?

publicado por: Anonymous

Uso Python 3.6 e intento leer un dato de entrada de varias lineas para almacenarla en una variable y luego administrar cada linea en una lista por ejemplo. La estructura del codigo es algo sencillo como esto:

    print("Escriba la lista de ciudades de la siguiente forma:")
    print("Ciudad origen | Ciudad destino | Ruta | Distancia")
    cad.append(input())  

Quiero ingresar 3 lineas por ejemplo (sin presionar ENTER, copiando y pegando por ejemplo)

Linea 1
Linea 2
Linea 3
Y quiero que python almacene en una variable las 3 lineas

solución

Input (python 3.x) retorna una cadena, para dividir cada elemento puedes usar el método split de las cadenas usando el separador adecuado, en tu caso |:

print("Escriba la lista de ciudades de la siguiente forma:")
print("Ciudad origen | Ciudad destino | Ruta | Distancia")
cadd = input().split('|')

Edición:
Vale, lo que deseas por lo que parece es una entrada multilinea, input solo lee hasta encontrarse con un final de linea (‘n’, ‘r’, …). Una forma sencilla sería usar un ciclo while infinito. Para detener la entrada se puede especificar cualquier cosa, en este caso introducir una linea en blanco indica que el usuario termina el ingreso de datos:

print("Escriba la lista de ciudades de la siguiente forma:")
print("Ciudad origen | Ciudad destino | Ruta | Distancia")

lista = []
while True:
    inputs = input()
    if inputs:
        lista.append(inputs)
    else:
        break
print(lista)

En este caso se puede copiar y pegar un texto con varias lineas en la consola y finalmente cada linea será un elemento de la lista.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *