【问题标题】:Print Combining Strings and Numbers打印组合字符串和数字
【发布时间】:2012-08-14 16:21:07
【问题描述】:

要在 Python 中打印字符串和数字,除了执行以下操作之外还有其他方法吗:

first = 10
second = 20
print "First number is %(first)d and second number is %(second)d" % {"first": first, "second":second}

【问题讨论】:

  • 对于投票结束这个问题的人:这怎么不是一个真正的问题?不难说出所问的是什么,这个问题不模棱两可,既不含糊,也不不完整,过于宽泛或修辞。这只是一个刚开始学习 Python 的人提出的一个问题。如果您打算投票结束,请添加评论。
  • FWIW 我看到人们过去使用“不是一个真正的问题”作为“显示的努力不足”的替代类别——“python 如何打印”的第一个谷歌结果是输入Python 教程的 /Output 部分,涵盖了列出的所有方法。它并不真正匹配,但它有时被用作包罗万象。
  • 在完成python.org 的整个教程后,我显然问了这个非常简单的问题。我遇到了几天,这似乎很复杂,我确信还有其他方法,如下所示。 .format 不在教程中的字符串下列出,而是在库引用中。
  • 我也遇到过这种行为。来自初学者的问题由所谓的经验丰富的编码人员投票结束。一件事是有些人学习速度较慢,如果有用户愿意回答问题,那么问题是什么?我希望社区变得更加包容。
  • 请添加python 2.*标签:(

标签: python python-2.7


【解决方案1】:

是的,有。首选语法是支持 str.format 而不是已弃用的 % 运算符。

print "First number is {} and second number is {}".format(first, second)

【讨论】:

    【解决方案2】:

    使用 不带括号的打印函数适用于旧版本的 Python,但 Python3 不再支持,因此您必须将参数放在括号内。但是,有workarounds, as mentioned in the answers to this question。由于对 Python2 的支持已于 2020 年 1 月 1 日结束,因此已修改答案以与 Python3 兼容

    你可以做任何这些(可能还有其他方法):

    (1)  print("First number is {} and second number is {}".format(first, second))
    (1b) print("First number is {first} and number is {second}".format(first=first, second=second)) 
    

    (2) print('First number is', first, 'second number is', second) 
    

    (注意:逗号隔开后会自动加空格)

    (3) print('First number %d and second number is %d' % (first, second))
    

    (4) print('First number is ' + str(first) + ' second number is' + str(second))
      
    

    如果可用,最好使用 format() (1/1b)。

    【讨论】:

    • @flep .format 也适用于 2.6.5(但对于上述示例,它需要 {0} {1})
    • @Darksky 我用另一种方式(1b)更新了我的答案,以防您对“参数化”打印特别感兴趣
    • 在 (2) 中,字符串中不需要额外的空间。默认情况下,放置逗号将插入空格。所以不是(2)打印'第一个数字是',第一个,'第二个数字是',第二个这样做:(2)打印'第一个数字是',第一个,'第二个数字是',第二个
    • @Levon 第二种方法给出了语法错误“缺少括号”。也许它不再受支持?我正在使用 Python 3.8.5
    【解决方案3】:

    其他答案解释了如何生成像您的示例中那样格式化的字符串,但如果您需要做的只是print,那么您可以简单地编写:

    first = 10
    second = 20
    print "First number is", first, "and second number is", second
    

    【讨论】:

      【解决方案4】:

      如果你使用的是 3.6 试试这个

       k = 250
       print(f"User pressed the: {k}")
      

      输出:用户按下:250

      【讨论】:

        【解决方案5】:

        在 Python 3.6 中

        a, b=1, 2 
        
        print ("Value of variable a is: ", a, "and Value of variable b is :", b)
        
        print(f"Value of a is: {a}")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-12-07
          • 2020-03-13
          • 1970-01-01
          • 1970-01-01
          • 2016-02-15
          • 2015-03-20
          • 2021-07-24
          相关资源
          最近更新 更多