Проблема с запятой в конце печати при преобразовании Python2 в python3 - PullRequest
0 голосов
/ 12 января 2020

При преобразовании в 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?

...