2010-10-07 53 views
0

嗨,我想執行以下操作:使用字符串替換結合串 - 蟒蛇

b = 'random' 

c = 'stuff' 

a = '%s' + '%s' %(b, c) 

,但我得到了以下錯誤:

TypeError: not all arguments converted during string formatting 

做任何一個你知道該怎麼做所以?

+0

爲什麼不'b + c'? – kennytm 2010-10-07 17:11:12

+0

大聲笑,沒關係,我只是想通了,愚蠢的錯誤:D – Paulo 2010-10-07 17:12:34

+0

我試圖使用%s格式說明符,但我忘記了%b%c,是相同的b + c – Paulo 2010-10-07 17:13:27

回答

1

取決於你想要什麼:

>>> b = 'random' 
>>> c = 'stuff' 
>>> a = '%s' %b + '%s' % c 
>>> a 
'randomstuff' 
>>> 

>>> b + c 
'randomstuff' 
>>> 
>>> z = '%s + %s' % (b, c) 
>>> z 
'random + stuff' 
>>> 
+0

哇,感謝球員,我不知道優先級部分,我結束了這樣做:a ='%b%c'%(b,c) – Paulo 2010-10-07 17:28:11

+0

@paulo:如果你所做的只是連接字符串,*請*只需使用'+'。簡單明瞭。 – 2010-10-07 17:56:35

+0

@Nick T:@paulo:原因,我只是簡單地展示了各種示例,代碼的含義並不明確。各種答覆和評論中的建議仍然存在。如果你連接,直接做,格式化使用「%」的方法,甚至更好的sdolan建議的'格式'。 – pyfunc 2010-10-07 18:01:26

4
'%s%s' % (b, c) 

b + c 

或newstyle format方式

'{0}{1}'.format(a, b) 
1

由於運算符優先級,你的程序是先嚐試替換b和c變成第二個'%s'。因此用+分割這樣的字符串沒有意義,最好是 a = '%s %s' % (b,c)