Python: для цикла – печать в одной строке

У меня вопрос о печати в той же строке, используя for цикла в Python 3. Я искал ответ, но я не мог найти никакого релевантного.

Итак, у меня есть что-то вроде этого:

 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: ') 

Когда пользователь вводит в предложение «короткое предложение», функция должна что-то делать с ним, и его следует печатать на одной строке. Предположим, что функция добавляет 't' в конец каждого слова, поэтому выход должен быть

В shortt sentencet

Однако на данный момент выход:

В
Shortt
sentencet

Как можно легко распечатать результат на одной строке? Или я должен создать новую строку так

 new_string = '' new_string = new_string + new_item 

и он повторяется, и в конце я печатаю new_string?

  • Добавление в список в словаре Python
  • Почему вы не переключитесь на Python 3.x?
  • Как создать набор Python только с одним элементом?
  • Какие существуют библиотеки SOAP для Python 3.x?
  • Подходящие подкомпоны
  • Библиотека классификации цветов
  • Планирование программ Python
  • Как использовать concurrent.futures с таймаутами?
  • 3 Solutions collect form web for “Python: для цикла – печать в одной строке”

    Использовать end параметр в функции print

     print(new_item, end=" ") 

    Существует еще один способ сделать это, используя понимание и join .

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

    Самое простое решение – использовать запятую в вашем заявлении на print :

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

    Обратите внимание, что нет конечной новой строки; print без аргументов после того, как цикл добавит его.

    Поскольку print является функцией в Python3, вы можете уменьшить свой код до:

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

    Демоверсия:

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

    Еще лучше использовать iter и partial :

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

    Демоверсия:

     $ python3 so.py Enter a sentence: a foo bar at foot bart Enter a sentence: abc at bt ct Enter a sentence: $ 
    Python - лучший язык программирования в мире.