print(... sep='', '\t') 的意思是什么?

26
我很难找到这个问题的答案。我想知道 sep=""\t 的语法含义。我找到了一些相关信息,但不是很理解使用此语法的目的。我想要一个解释它的功能以及何时/为什么使用它的说明。 sep='' 的用法示例:
print('Property tax: $', format(tax, ',.2f'), sep='') 
4个回答

49
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 在字符串文字中制表符,水平空白,ASCII 码点 9 的转义序列。

\t 比实际制表符更易于阅读和输入。请参见字符串文字的已识别转义序列表

使用空格或 \t 制表符作为打印分隔符显示差异:

>>> print('eggs', 'ham')
eggs ham
>>> print('eggs', 'ham', sep='\t')
eggs    ham

print('财产税:$', format(tax, ',.2f'), sep='') 这是一行代码的示例,其中使用了该语句。 - krona
@krona:sep=''sep""不是同一件事。请参阅print()函数文档;该代码将sep关键字参数设置为空字符串。 - Martijn Pieters
@Noumenon:在Python 2中,使用from __future__ import print_function;这不仅限于Python 3。问题是在使用print()作为函数,因此我对此进行了调整。 - Martijn Pieters
按照同样的逻辑,任何Python 2的答案也适用于Python 3,因为有2to3存在。通过拒绝编辑,您正在给Python 2用户带来困惑。我将标记该问题为Python 3,但是没有人会注意到。 - Noumenon
1
@Noumenon:两个版本之间总会有些混淆。我会链接到函数文档,称之为“函数”而不是“语句”等。 - Martijn Pieters

1

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

1
"

sep='\t'通常用于制作Tab分隔的文件。

"

0

sep = '\t' 可以在许多形式下使用,例如如果您想要读取制表符分隔值: 示例:我有一个数据集 tsv = 制表符分隔值 而不是逗号分隔值 df = pd.read_csv('gapminder.tsv')。 当您尝试读取它时,会出现错误,因为您拥有制表符分隔值而不是 csv。所以您需要给 read_csv 不同的参数称为 sep='\t'。

现在您可以这样读取: df = pd.read_csv('gapminder.tsv, sep='\t'),这样您就可以读取它了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接