Какую конечную запятую в функции печати?
Этот код от http://docs.python.org/2/tutorial/errors.html#predefined-clean-up-actions
with open("myfile.txt") as f:
for line in f:
print line,
Я не понимаю, что это за ,
в конце команды print.
Я также проверил doc, http://docs.python.org/2/library/functions.html#print.
Не понимая достаточно, это ошибка? (похоже, это не из официального учебника).
Я из ruby /javascript, и это необычно для меня.
Ответы
Ответ 1
В Python 2.7 запятая должна показать, что строка будет напечатана в той же строке
Например:
for i in xrange(10):
print i,
Это напечатает
1 2 3 4 5 6 7 8 9
Чтобы сделать это в Python 3, вы должны сделать это:
for i in xrange(10):
print(i,end=" ")
Вы, вероятно, найдете этот ответ полезным
Печать горизонтально в питоне
---- Редактировать ---
В документации http://docs.python.org/2/reference/simple_stmts.html#the-print-statement говорится:
Символ '\n' пишется в конце, если оператор print не заканчивается запятой.
Ответ 2
Это предотвращает завершение print
новой строкой, позволяя добавить новый print
в конец строки.
Python 3 полностью изменяет это значение, и конечная запятая больше не принимается. Вы используете параметр end
, чтобы изменить окончание строки, установив его в пустую строку, чтобы получить тот же эффект.
Ответ 3
От Конечная запятая Python после печати выполняет следующую команду:
- В Python 2.x завершающий
,
в заявлении печати предотвращает испускание новой строки.
- Стандартный вывод буферизируется по строке. Таким образом, "Привет" не будет напечатано до того, как выйдет новая строка.
Ответ 4
в питоне 2.7:
print line,
в питоне 3.х:
print(line, end = ' ')