2013-05-10 5 views
1

Я пытаюсь напечатать новую строку при использовании% форматирования. Это код у меня есть:Новая строка при использовании форматирования% в python

return '%s\n%s\n%s\nScore: %d' % (seqA, matches, seqB, score) 

Но что печатает:

'ATTCGT\n|| |\nATCTAT\nScore: 2' 

Есть ли способ печати новых линий с помощью этого метода?

+0

Вы путаете диагностику печати оболочки Python (представление, используя функцию 'repr', результата предыдущей строки, оцененной) с фактическим выводом вашего сценария. Ваш код на самом деле ничего не выводит. – Cairnarvon

+1

Я просто попробовал его за пределами программы Python IDLE и использовал «print», и это сработало. Сожалею. –

+0

Не пожалеете, это не необычная ошибка. – Cairnarvon

ответ

1

Использовать print вместо return. print оценивает каждое выражение и записывает результат в стандартный вывод, а return просто повторяет возвращаемый объект (в режиме ожидания):

>>> seqA = 'ATTCGT' 
>>> matches = '|| |' 
>>> seqB = 'ATCTAT' 
>>> score = 2 
>>> print '%s\n%s\n%s\nScore: %d' % (seqA, matches, seqB, score) 
ATTCGT 
|| | 
ATCTAT 
Score: 2 
+0

Я чувствую, что этот ответ достаточно неточен, чтобы быть бесполезным, хотя он технически, вероятно, решит его проблему. – Cairnarvon

+0

Я скорректировал ответ, чтобы отразить более подходящую терминологию. Спасибо за подсказку. –

0

Вы получаете правильное значение. Но вам нужно print.

Смежные вопросы