【问题标题】:Print without space in python 3在python 3中打印没有空格
【发布时间】:2012-09-23 21:54:14
【问题描述】:

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

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

另外,我有以下代码:

a = 42
b = 84 

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

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

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

而 Java 风格,

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

引发TypeError

【问题讨论】:

    标签: printing python-3.x


    【解决方案1】:

    你可以使用sep参数去掉空格:

    >>> print("a","b","c")
    a b c
    >>> print("a","b","c",sep="")
    abc
    

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

    >>> 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 或更高版本。对于早期版本,您可以模拟相同的效果(虽然我一般不建议这样做,但它有时会派上用场,假装没有意义):

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

    【讨论】:

      【解决方案2】:

      print()函数的实际语法是

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

      你可以看到它有一个参数sep,默认值为' '。这就是为什么在两者之间插入空间的原因。

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

      【讨论】:

        【解决方案3】:

        你也可以使用

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

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

        【讨论】:

          【解决方案4】:

          print() 会自动在参数之间留出空格。

          >>> print("a", "b", "c")
          a b c
          

          为了更好地控制间距,您可以使用字符串格式:

          >>> v0, v1, v2 = "a", "b", "c"
          >>> print("%s%s%s" % (v0, v1, v2))
          abc
          >>> print("%s%s%s".format(v0, v1, v2)
          abc
          >>> print(f"{v0}{v1}{v2}")
          abc
          

          我喜欢这个主题的指南:https://realpython.com/python-f-strings/

          【讨论】:

            【解决方案5】:

            要分隔字符串或值,您可以在 print() 中使用 sep 参数

            print(a,b,sep='')
            

            【讨论】:

              【解决方案6】:

              this page 上,答案是打印您的普通文本并在最后使用 sep="".

              所以命令

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

              会给

              "Hole1Par4"
              

              假设hole==1par==4

              【讨论】:

                猜你喜欢
                • 2013-11-06
                • 1970-01-01
                • 2013-03-05
                • 2021-07-16
                • 1970-01-01
                • 1970-01-01
                • 2016-01-24
                • 2014-03-06
                • 2018-02-25
                相关资源
                最近更新 更多