Python: for loop – imprime en la misma línea

Tengo una pregunta sobre la impresión en la misma línea usando for loop en Python 3. Busqué la respuesta pero no encontré ninguna relevante.

Entonces, tengo algo como esto:

 def function(variable): some code here return result item = input('Enter a sentence: ') while item != '': split = item.split() for word in split: new_item = function(word) print(new_item) item = input('Enter a sentence: ') 

Cuando un usuario escribe una oración ‘Una oración corta’, la función debe hacer algo con ella y debe imprimirse en la misma línea. Digamos que la función agrega ‘t’ al final de cada palabra, por lo que la salida debería ser

En shortt sentencet

Sin embargo, en el momento la salida es:

A
corto
sentencet

¿Cómo puedo imprimir el resultado en la misma línea fácilmente? O debería hacer una nueva cadena para

 new_string = '' new_string = new_string + new_item 

y se itera y al final imprimo new_string?

Utilizar el parámetro end en la función de print .

 print(new_item, end=" ") 

Hay otra manera de hacer esto, utilizando la comprensión y join .

 print (" ".join([function(word) for word in split])) 

La solución más simple es usar una coma en su statement de print :

 for i in range(5): print i, #prints 1 2 3 4 5 

Tenga en cuenta que no hay una nueva línea final; print sin argumentos después del bucle lo agregaría.

Como la print es una función en Python3, puede reducir su código a:

 while item: split = item.split() print(*map(function, split), sep=' ') item = input('Enter a sentence: ') 

Manifestación:

 $ python3 so.py Enter a sentence: a foo bar at foot bart 

Aún mejor usando iter y partial :

 from functools import partial f = partial(input, 'Enter a sentence: ') for item in iter(f, ''): split = item.split() print(*map(function, split), sep=' ') 

Manifestación:

 $ python3 so.py Enter a sentence: a foo bar at foot bart Enter a sentence: abc at bt ct Enter a sentence: $