【问题标题】:Concatenating values in a print statement [duplicate]在打印语句中连接值[重复]
【发布时间】:2017-01-18 01:52:58
【问题描述】:

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

我想打印这个:

Hello Bob

我如何得到它?


假设我有代码

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

这给了

('Hello', 'Bob')

这是我不想要的。 如果我输入代码

name = "Bob"
print "Hello"
print name

这给了

Hello
Bob

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

Hello Bob

我如何得到它?

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

【问题讨论】:

  • print ("Hello" +" "+ name)
  • @RafaelCardoso,python 2 - 我正在使用在线编译器 repl.it
  • 这是个坏问题吗?如果是这样,我可以删除它。感谢大家的回答!
  • 好吧。这是一个非常基本的Python问题:)

标签: python python-2.7 output string-concatenation


【解决方案1】:

有几种方法可以存档:

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

【讨论】:

    【解决方案2】:

    打印出乎意​​料的原因是因为在 Python 2.x 中,print 是一个语句,而不是函数,括号和空格正在创建一个元组。 Print 可以像 Python 3.x 中那样使用括号,但问题是语句和括号之间的空格。该空间使 Python 将其解释为一个元组。请尝试以下操作:

    print "Hello ", name
    

    注意缺少的括号。 print 不是一个被调用的函数,而是一个语句。它打印Hello Bob,因为第一个字符串是,并且由逗号分隔的变量被附加或连接到然后打印的字符串。在 Python 2.x 中还有许多其他方法可以做到这一点。

    【讨论】:

    • 谢谢,这个答案有助于更好地解释解决方案。
    • 还要注意 print 语句和括号之间的空格会影响结果。没有空间它应该可以正常工作
    • FWIW,我打算接受答案;我只是在等待 9 分钟结束。 =) 另外,很高兴知道。再次感谢!
    【解决方案3】:

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

    print "Hello", name
    

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

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

    【讨论】:

    • 我以为"{}".format()是Python3的标准?
    • 在 Python 3 中不推荐使用百分比字符进行格式化。它已被 str.format() 方法取代。
    • @Bart 我只是在编辑
    【解决方案4】:
    print("Hello" + ' ' + name)
    

    应该在 python 2 上做

    【讨论】:

      【解决方案5】:

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

      print "Hello", name
      

      通常您不会看到这种效果,因为您只打印一个项目;在单个项周围加上括号不会创建一个元组。以下在 Python 2 和 Python 3 中的工作方式相同:

      print(name)
      

      【讨论】:

      • 谢谢,这个答案解释了为什么该解决方案有效。
      【解决方案6】:

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

      代码

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

      输出

      Hello Bob
      

      【讨论】:

        猜你喜欢
        • 2019-09-03
        • 2021-09-12
        • 2020-07-21
        • 1970-01-01
        • 2017-04-05
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多