python - usar - the django project
Cómo obtener una entrada multilínea del usuario (5)
Esta pregunta ya tiene una respuesta aquí:
Quiero escribir un programa que obtenga múltiples entradas de línea y trabajar con él línea por línea.
¿Por qué no hay una función como
raw_input
en Python 3?
input
no permite al usuario poner líneas separadas por nueva línea (
Enter
), solo imprime la primera línea.
¿Se puede almacenar en variable o incluso leerlo en una lista?
En Python 3.x,
raw_input()
de Python 2.x ha sido reemplazado por
input()
función
input()
.
Sin embargo, en ambos casos no puede ingresar cadenas de líneas múltiples, para ese propósito necesitaría obtener entradas del usuario línea por línea y luego
.join()
usarlas
/n
, o también puede tomar varias líneas y concatenarlas usando
+
operador separado por
/n
Para obtener una entrada de varias líneas del usuario, puede ir como:
no_of_lines = 5
lines = ""
for i in xrange(5):
lines+=input()+"/n"
print lines
O
lines = []
while True:
line = input()
if line:
lines.append(line)
else:
break
text = ''/n''.join(lines)
Use la función incorporada
input()
para obtener una línea de entrada del usuario.
Puedes leer la ayuda aquí .
Puede usar el siguiente código para obtener varias líneas a la vez (terminando en una vacía):
while input() != '''':
do_thing
input(prompt)
es básicamente equivalente a
def input(prompt):
print(prompt, end='''', file=sys.stderr)
return sys.stdin.readline()
Puede leer directamente desde
sys.stdin
si lo desea.
lines = sys.stdin.readlines()
lines = [line for line in sys.stdin]
five_lines = list(itertools.islice(sys.stdin, 5))
Los dos primeros requieren que la entrada finalice de alguna manera, ya sea al llegar al final de un archivo o por el usuario escribiendo Control-D (o Control-Z en Windows) para señalar el final. El último volverá después de haber leído cinco líneas, ya sea desde un archivo o desde el terminal / teclado.
raw_input
puede manejar correctamente el EOF, por lo que podemos escribir un bucle, leer hasta que hayamos recibido un EOF (Ctrl-D) del usuario:
Python 3
print("Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it.")
contents = []
while True:
try:
line = input()
except EOFError:
break
contents.append(line)
Python 2
print "Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it."
contents = []
while True:
try:
line = raw_input("")
except EOFError:
break
contents.append(line)
no_of_lines = 5
lines = ""
for i in xrange(5):
lines+=input()+"/n"
a=raw_input("if u want to continue (Y/n)")
""
if(a==''y''):
continue
else:
break
print lines