Python: как вернуть перенос строки в функции
def linebreak(fruits):
'''
>>> fruits = 'apple banana pear'
>>> linebreak(fruits)
apple
banana
pear
'''
response = ''
for fruit in fruits.split():
response += fruit + '\n'
return response
if __name__ == '__main__':
import doctest
doctest.testmod()
Expected:
apple
banana
pear
Got:
'apple\nbanana\npear\n'
Я в основном хочу функцию, которая возвращает то, что делает печать. Надеюсь, код не слишком запутанный. Я просканировал Интернет, но все, что я могу найти, это люди, задающие вопросы о переводе строки при печати, а не при возврате.
1 ответ
>>> linebreak(fruits)
показывает repr()
возвращаемого значения, которое является строкой Python.
Что вы хотите >>> print linebreak(fruits)
который на самом деле печатает содержимое возвращенного значения вместо его repr:
>>> 'foo\nbar'
'foo\nbar'
>>> print 'foo\nbar'
foo
bar
К вашему сведению, вся ваша функция может быть упрощена в одну строку:
return '\n'.join(fruits.split())