2012-02-27 43 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。