关于打印:在python 3中无空间打印

Print without space in python 3

我是Python的新手,我想知道如何在不增加额外空间的情况下打印多个值。 我想要输出ab而不是a b,而不必两次调用print

1
2
print("a", end="")
print("b")

另外,我有以下代码:

1
2
a = 42
b = 84

我想将它们的值打印为a = 42, b = 84,但如果我这样做的话

1
print("a =", a,",", b =", b)

添加额外的空格(输出a = 42 , b = 84)

而Java风格,

1
print("a =" + a +", b =" + b)

提高TypeError


您可以使用sep参数来删除空格:

1
2
3
4
>>> print("a","b","c")
a b c
>>> print("a","b","c",sep="")
abc

我不知道"Java风格"是什么意思;在Python中你不能以这种方式向(比如说)整数添加字符串,尽管如果ab是字符串,它将起作用。当然,您还有其他几种选择:

1
2
3
4
5
6
7
8
>>> print("a =", a,", b =", b, sep="")
a = 2, b = 3
>>> print("a =" + str(a) +", b =" + str(b))
a = 2, b = 3
>>> print("a = {}, b = {}".format(a,b))
a = 2, b = 3
>>> print(f"a = {a}, b = {b}")
a = 2, b = 3

最后一个需要Python 3.6或更高版本。对于早期版本,您可以模拟相同的效果(虽然我一般不建议这样做,但它有时会派上用场,并且没有必要假装其他方式):

1
2
3
4
>>> print("a = {a}, b = {b}".format(**locals()))
a = 2, b = 3
>>> print("b = {b}, a = {a}".format(**locals()))
b = 3, a = 2

print()函数的实际语法是

1
2
print(*objects, sep=' ', end='
', file=sys.stdout, flush=False)

您可以看到它具有默认值' '的arg sep。这就是为什么空间插入其中的原因。

1
2
print("United","States")            #Output: United States
print("United","States",sep="")     #Output: UnitedStates


你也可以使用

1
print("%d%d" %(a,b))

打印a和b不以格式化字符串形式的空格分隔。这类似于c中的那个。


在这个页面上,答案是打印您的正常文本,并在最后使用
sep=""

所以命令

1
print("Hole", hole,"Par", par, sep="")

会给

1
"Hole1Par4"

假设hole==1par==4