При преобразовании в Python3 я заметил кое-что, связанное с функцией print
# Python 2
print "1\n",
print "2\n",
print "3\n",
# Output
1
2
3
Команда 2to3 преобразует приведенный выше код в:
# Python 3
print("1\n", end=' ')
print("2\n", end=' ')
print("3\n", end=' ')
Но вывод это \n
+ end=' '
, поэтому следующий символ немного смещен вправо.
# Output
1
2
3
Если я уверен, что у меня всегда будет \n
в конце строка - исправление легко конвертировать: print('1\n', end=' ')
-> print('1\n', end='')
, что дало мне вывод, который мне был нужен:
# Output
1
2
3
Но тогда у меня возникла проблема со строкой, которая не заканчивается на \n
и нуждается в пробеле после comma
, чтобы он на самом деле не работал одинаково:
# Python2
print "1",
print "2",
print "3",
1 2 3
# Python3
print("1", end='')
print("2", end='')
print("3", end='')
123
Так что, если у меня есть list
строк, которые иногда имеют \n
, а иногда нет т? здесь есть фокус c или мне понадобится if
, чтобы определить значение флага end
?