2012-02-27 41 views
4

数字拼接是否有办法在Python Concat的数字,可以说我有代码打印的两个数字在Python

print(2, 1) 

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

+0

将标题从“python中的连接”中更改;这不应该被解释为询问与数字相关的任何事物的人。 – ninjagecko 2012-02-27 21:25:03

+0

标记'python-3',因为如果你的输出是'2 1'而不是'(2,1)',那么你就很清楚了。 – 2012-02-27 21:31:39

回答

8

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

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

使用字符串格式化操作:

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

编辑:在Python 2.6+,你也可以使用一个字符串的格式()方法:

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

OP显然使用'python-3',这意味着'%'已被弃用。 – 2012-02-27 21:35:24

+2

'%'尚未被弃用。计划是在Python 3.1中这样做,但他们没有。您仍然可以在3.2中使用它,而不会有任何警告。 – kindall 2012-02-27 22:47:16

+1

str.format实际上在Python 2.6+中可用,不仅仅是python3 + – strcat 2012-02-28 06:04:57

5

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

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

在印刷的情况下,你宁愿做什么拉斐尔建议在他的回答(字符串格式运算符)。我个人不喜欢它:

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

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

print(2, 1, sep="") 

如果你正在使用python2.x,你可以使用

from __future__ import print_function 

位于文件的顶部。

6

如果你有很多的数字使用str.join() + map()

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

否则为什么不直接做:

print(2*10+1) 
3

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

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

2.6+,实际上:http://docs.python.org/release/2.6/library/stdtypes.html#str.format – 2012-08-29 17:48:23

2
>>> import sys 
>>> values = [1, 2, 3, 4, 5] 
>>> for value in values: 
     sys.stdout.write(str(value)) 
12345 
-1

只需使用

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

它会给你21

0

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

VAL = [1,2,3,4] 减少(拉姆达X,Y:X * 10 + Y,val)的

或得到的结果之后。将其转换回Integer。