Что означает print(sep='', '\t')?

У меня возникли некоторые проблемы, пытаясь найти ответ на этот вопрос. Я хотел бы знать, что означает синтаксис sep="" и \t. Я нашел некоторую информацию об этом, но я не совсем понял, какова цель использования синтаксиса. Я ищу объяснение того, что он делает и когда/почему вы будете его использовать.

Пример использования sep='':

print('Property tax: $', format(tax, ',.2f'), sep='') 

person krona    schedule 01.03.2014    source источник


Ответы (4)


sep='' в контексте вызова функции устанавливает именованный аргумент sep в пустую строку. См. print() функцию; sep — это разделитель, используемый между несколькими значениями при печати. По умолчанию используется пробел (sep=' '), этот вызов функции гарантирует отсутствие пробела между Property tax: $ и форматированным значением с плавающей запятой tax.

Сравните вывод следующих трех вызовов print(), чтобы увидеть разницу.

>>> print('foo', 'bar')
foo bar
>>> print('foo', 'bar', sep='')
foobar
>>> print('foo', 'bar', sep=' -> ')
foo -> bar

Все, что изменилось, это значение аргумента sep.

\t в строковом литерале – это escape-последовательность для символа табуляции, горизонтального пробела, кодовой точки ASCII 9< /а>.

\t легче читать и печатать, чем фактический символ табуляции. Строковые литералы см. в таблице распознаваемых escape-последовательностей.

Использование пробела или табуляции \t в качестве разделителя печати показывает разницу:

>>> print('eggs', 'ham')
eggs ham
>>> print('eggs', 'ham', sep='\t')
eggs    ham
person Martijn Pieters    schedule 01.03.2014
comment
print('Налог на недвижимость: $', format(tax, ',.2f'), sep='') будет примером строки кода, в которой он используется. - person krona; 01.03.2014
comment
@krona: sep='' не то же самое, что sep"". См. print() документацию по функциям; код устанавливает аргумент ключевого слова sep в пустую строку. - person Martijn Pieters; 01.03.2014
comment
@Noumenon: в Python 2 используйте from __future__ import print_function; это не ограничивается только Python 3. Вопрос заключался в использовании print() в качестве функции, поэтому я приспособился к этому случаю. - person Martijn Pieters; 12.01.2016
comment
По той же логике любой ответ Python 2 также хорош для Python 3, потому что существует 2to3. Вы вызываете путаницу у пользователей Python 2, отклоняя редактирование. Я отмечу вопрос как Python 3, но этого никто никогда не замечает. - person Noumenon; 12.01.2016
comment
@Noumenon: между двумя версиями всегда будет некоторая путаница. Я ссылаюсь на документацию по функциям, я называю это функцией, а не утверждением и т. д. - person Martijn Pieters; 12.01.2016

sep='' игнорировать пробелы. см. код, чтобы понять. Без sep=''

from itertools import permutations
s,k = input().split()
for i in list(permutations(sorted(s), int(k))):
    print(*i)

выход:

HACK 2
A C
A H
A K
C A
C H
C K
H A
H C
H K
K A
K C
K H

используя sep='' код и вывод.

from itertools import permutations
s,k = input().split()
for i in list(permutations(sorted(s), int(k))):
    print(*i,sep='')

выход:

HACK 2
AC
AH
AK
CA
CH
CK
HA
HC
HK
KA
KC
KH
person Nazmul Hossain    schedule 09.02.2018

sep='\t' часто используется для файлов с разделителями табуляции.

person Riadh Saïd    schedule 15.10.2019

sep='\t' можно использовать во многих формах, например, если вы хотите прочитать значение, разделенное табуляцией: Пример: у меня есть набор данных tsv = значение, разделенное табуляцией, НЕ значение, разделенное запятой df = pd.read_csv('gapminder.tsv '). когда вы попытаетесь прочитать это, это выдаст вам ошибку, потому что у вас есть значение, разделенное табуляцией, а не csv. поэтому вам нужно указать для чтения csv другой параметр с именем sep='\t'.

Теперь вы можете прочитать: df = pd.read_csv('gapminder.tsv, sep='\t'), с этим вы можете прочитать его.

person Lucky Peter Okonun    schedule 21.07.2020