【问题标题】:printing variable that contains string and 2 other variables包含字符串和其他 2 个变量的打印变量
【发布时间】:2017-09-08 14:47:06
【问题描述】:
var_a = 8
var_b = 3

var_c = "hello my name is:",var_a,"and",var_b,"bye"
print(var_c)

当我运行程序时,var_c 会像这样打印出来:('hello my name is:', 8, 'and', 3, 'bye') 但是所有的括号等也会打印出来,为什么会这样和有没有办法摆脱这些符号?

如果我这样运行程序:

print("hello my name is:",var_a,"and",var_b,"bye")

我没有这个问题

【问题讨论】:

  • 是的,它就是这样工作的。 var_c 是一个元组。
  • 第二个版本的引号不平衡。
  • 变量不只是操纵你的程序编写的文本,它并没有真正移动分配给它的值并使用不同的上下文进行评估。 var_c 赋值行上的逗号创建一个元组,而 print 行上的逗号将函数参数分隔到 print 函数。 Print(默认情况下)将所有参数打印在一行上,中间有一个空格。元组的字符串表示是用括号括起来的逗号分隔的元素。你想要的是字符串连接或字符串格式。

标签: python string python-3.x variables


【解决方案1】:

你可以format你的字符串来得到你期望的字符串输出。

var_c = "hello my name is: {} and {}, bye".format(var_a, var_b)

正如所评论的,您现有的输出是由于变量作为元组返回,而您希望它作为一个字符串。

【讨论】:

    【解决方案2】:

    在 Python 3.6+ 中,您可以使用新的 f 字符串 (formatted string literals):

    var_c = f"hello my name is: {var_a} and {var_b}, bye"
    

    【讨论】:

      【解决方案3】:

      var_c 实际上是一个元组,所以print 会这样解释它,然后打印它的表示。

      var_a = 8
      var_b = 3
      var_c = "hello my name is:", var_a, "and", var_b, "bye"
      

      但你可以告诉print 使用元组作为* 的参数

      print(*var_c)
      

      结果:

      hello my name is: 8 and 3 bye
      

      (当然这是理论上的,最好像其他答案所说的那样使用str.format

      【讨论】:

        【解决方案4】:

        您应该像这样将 var_c 创建为字符串

        var_c = "hello my name is: %s and %s bye" % (var_a, var_b)
        

        【讨论】:

          【解决方案5】:
          var_c = "hello my name is:",var_a,"and",var_b,"bye"
          

          通过这一行,您将 var_c 作为元组...使其成为字符串,使其像

          var_d = "hello my name is:%s and %s bye" % (var_a,var_b)
          print(var_d)
          

          它会输出

          hello my name is:8 and 3 bye
          

          【讨论】:

            【解决方案6】:

            您的程序正在创建一个元组并且您打印该元组:

            var_a = 8
            var_b = 3
            
            var_c = "hello my name is:", var_a, "and", var_b, "bye"
            print(var_c)
            

            输出:

            ('hello my name is:', 8, 'and', 3, 'bye') 
            

            也可以这样打印:

            for item in var_c:
                print(item+' ', end='')
            

            输出:

            hello my name is: 8 and 3 bye
            

            【讨论】:

              【解决方案7】:

              那是因为你正在使用语法来创建一个元组!

              tup = "a", "b", "c", "d"
              

              请参考:https://www.tutorialspoint.com/python/python_tuples.htm

              如果你只想连接这些你可以写:

              var_c = "hello my name is: " + str(var_a) + " and " + str(var_b) + " bye"
              

              【讨论】:

                【解决方案8】:
                var_a = 8
                var_b = 3
                
                var_c = "hello my name is:", var_a, "and", var_b, "bye"
                print(var_c)
                

                输出:

                ('hello my name is:', 8, 'and', 3, 'bye') 
                

                也可以这样打印:

                for item in var_c:
                    print(item+' ', end='')
                

                输出:

                hello my name is: 8 and 3 bye
                

                【讨论】:

                • 你只是复制/粘贴@quamrana 的答案吗?!
                • 请输入代码code-type。您可以使用tags 使您的帖子易于查看和解释。
                猜你喜欢
                • 2022-07-07
                • 2013-05-09
                • 2021-04-03
                • 2022-11-27
                • 2012-12-12
                • 1970-01-01
                • 2014-01-07
                • 2021-09-22
                • 2020-04-28
                相关资源
                最近更新 更多