2017-02-28 160 views
1

我想弄清楚爲什麼我的代碼不工作,當我試圖打印字符串的集合。在Python 2我通常做的:Python3,連接的字符串不工作

print ('test is') + ('this') 

然而,在Python 3它prodcues以下錯誤:

TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 

我已經試過「+」與「和」的工作,但是串沒有按更換那之後不會出來。有人可以向我解釋如何和爲什麼?

回答

3

在Python 3中print不是Python 2以外的語句,它是一個函數。此外,該函數返回一個NoneType

因此,當您在Python 3.x中鍵入print ('test is') + ('this')時,您試圖將NoneType添加到str並因此出現錯誤。

正確的事情(我希望你想這樣做)是鍵入:

print('test is' + 'this')

+0

不會爲兩個字符串的每個部分添加空格嗎? – DuckyQuack

+1

不需要''+'簡單地連接並且不添加任何它自己的空格。 – Ujjwal

+0

使用','做。 –

0

如果你想打印兩個字符串在Python 3,那麼你需要包含他們都在一個支架上, print (('test is ')+('this')),因此它將全部打印爲一個字符串,而不是將print('test is ')(nonetype)添加到('this')(字符串)。