【问题标题】:Print the concatenation of the digits of two numbers in Python在 Python 中打印两个数字的数字的串联
【发布时间】:2012-03-17 08:41:39
【问题描述】:

有没有办法在 Python 中连接数字,假设我有代码

print(2, 1)

我希望它打印 21,而不是 2 1,如果我使用“+”,它会打印 3。有没有办法做到这一点?

【问题讨论】:

  • 将标题从“python 中的连接”更改;这不应被解释为询问任何与数字相关的人。
  • 标记python-3,因为如果你的输出是2 1而不是(2, 1),你就清楚了。

标签: python python-3.x concatenation


【解决方案1】:

使用字符串格式化操作符:

print "%d%d" % (2, 1)

编辑:在 Python 2.6+ 中,您还可以使用字符串的 format() 方法:

print("{0}{1}".format(2, 1))

【讨论】:

  • OP 显然在使用python-3,这意味着% 已被弃用。
  • % 尚未被弃用。计划是在 Python 3.1 中这样做,但他们没有。您仍然可以在 3.2 中使用它而不会发出任何警告。
  • str.format 实际上在 python 2.6+ 中可用,而不仅仅是 python3+
【解决方案2】:

您也许可以将整数转换为字符串:

print(str(2)+str(1))

【讨论】:

    【解决方案3】:

    您可以更改打印功能使用的分隔符:

    print(2, 1, sep="")
    

    如果你使用的是python2.x,你可以使用

    from __future__ import print_function
    

    在文件的顶部。

    【讨论】:

      【解决方案4】:

      如果您有很多数字,请使用str.join() + map()

      print(''.join(map(str, [2,1])))
      

      否则为什么不干脆做:

      print(2*10+1)
      

      【讨论】:

        【解决方案5】:

        这是因为 2 和 1 是整数,而不是字符串。一般来说,如果您想在除打印之外的任何上下文中执行此操作,您必须先将它们转换为字符串。例如:

        myNumber1 = ...
        myNumber2 = ...
        myCombinedNumberString = str(myNumber1)+str(myNumber2)
        

        在打印方面,您更愿意按照 Rafael 在他的回答中建议的操作(字符串格式运算符)。我个人会这样做:

        print( '{}{}'.format(2,1) )
        

        【讨论】:

          【解决方案6】:

          如果您使用 python 3.x 或 2.7,请使用format

          print("{0}{1}".format(2, 1))
          
          【解决方案7】:
          >>> import sys
          >>> values = [1, 2, 3, 4, 5]
          >>> for value in values:
                  sys.stdout.write(str(value))
          12345
          

          【讨论】:

            【解决方案8】:

            如果我们不想把它转换成字符串。

            val = [1,2,3,4] reduce(lambda x,y: x*10+y, val)

            或者在得到结果之后。将其转换回整数。

            【讨论】:

              【解决方案9】:

              print(f'{2}{1}') 给了

              21
              
              [Program finished] 
              

              OP 使用的格式。 我是<class 'str'>

              【讨论】:

                【解决方案10】:

                简单使用

                c="2"+"1"
                print(c)
                

                它会给你21

                【讨论】:

                  猜你喜欢
                  • 2021-12-27
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-09-24
                  • 2016-01-20
                  • 2022-11-21
                  • 1970-01-01
                  • 2020-03-13
                  • 1970-01-01
                  相关资源
                  最近更新 更多