在 print 语句中连接值

Concatenating values in a print statement

我将字符串 "Bob" 存储在一个名为 name 的变量中。

我要打印这个:

Hello Bob

我如何获得它?


假设我有代码

name = "Bob"
print ("Hello", name)

这给出了

('Hello', 'Bob')

我不想要。 如果我输入代码

name = "Bob"
print "Hello"
print name

这给出了

Hello
Bob

这也不是我想要的。我只想要普通的旧款

Hello Bob

我如何获得它?

如果这是一个重复或愚蠢的问题,我提前道歉。

在Python2.x中可以直接打印出来

print "Hello", name

但是你也可以格式化你的字符串

print ("Hello %s" % name)
print "Hello {0}".format(name)

将您的逗号 (,) 替换为加号 (+),并添加一些适当的间距。

代码

name = "Bob"
print("Hello " + name)

输出

Hello Bob

有几种方法可以存档:

Python 2:

>>> name = "Bob"
>>> print("Hello", name)
Hello Bob
>>> print("Hello %s" % name)
Hello Bob

Python 3:

>>> name = "Bob"
>>> print("Hello {0}".format(name))
Hello Bob

两者:

>>> name = "Bob"
>>> print("Hello " + name)
Hello Bob
print("Hello" + ' ' + name)

应该在 python 2

上完成

之所以打印出意外是因为在Python2.x中,打印是一个语句,不是函数,括号和space是在创建一个元组。 Print 可以像 Python 3.x 那样带括号,但问题是语句和括号之间的 space。 space 使 Python 将其解释为元组。请尝试以下操作:

print "Hello ", name

注意缺少的括号。 print 不是被调用的函数,它是一个语句。它打印 Hello Bob 是因为第一个字符串是 并且用逗号分隔的变量附加或连接到随后打印的字符串。在 Python 2.x.

中还有许多其他方法可以做到这一点

您看到了 Python 2 和 Python 3 之间的区别。在 Python 2 中,print 是一个语句,不需要括号。通过添加括号,您最终创建了一个元组,它不会按您想要的方式打印。简单的去掉括号。

print "Hello", name

通常您不会看到这种效果,因为您只打印了一项;在 单个 项目周围放置括号 不会 创建元组。以下内容在 Python 2 和 Python 3 中效果相同:

print(name)