在 Python 中打印两个数字的数字的串联

Posted

技术标签:

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

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

print(2, 1)

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

【问题讨论】:

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

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

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

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

print("01".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("01".format(2, 1))

【讨论】:

2.6+,实际上:docs.python.org/release/2.6/library/stdtypes.html#str.format【参考方案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'21') 给了

21

[Program finished] 

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

【讨论】:

【参考方案10】:

简单使用

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

它会给你21

【讨论】:

以上是关于在 Python 中打印两个数字的数字的串联的主要内容,如果未能解决你的问题,请参考以下文章

python打印杨辉三角

将文本中的数字读入python中的变量

文件和异常练习2——python编程从入门到实践

python中print()内,字符串相加‘,’和‘+’有啥区别?

Java 线程:如何一次使用两个线程打印字母和数字

python-函数-定义一个函数,实现两个数四则运算,要注意有3个参数,分别是运算符和两个运算的数字.