2017-02-28 8 views
1

文字列のコレクションを印刷しようとしているときにコードが機能しない理由を理解しようとしています。 Pythonの2で、私は通常行うことができます:Python3、接続された文字列が機能しない

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

私は '+' 動作しますが、文字列のdoesnれる 'と' 交換しようとしている:

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

しかし、Pythonの3で、それは次のエラーがprodcuesそれ以降は出てこない。誰かが私に説明する方法と理由はありますか?

答えて

3

Python 3では、printはPython 2とは異なります。これは関数です。さらに、この関数はNoneTypeを返します。

したがって、print ('test is') + ('this')をPython 3.xに入力すると、NoneTypestrに追加しようとしているため、エラーが発生します。

正しい事(私はあなたがこれをしたい期待)を入力することです:

print('test is' + 'this')

+0

2つの文字列の各部分にスペースを追加しませんか? – DuckyQuack

+1

'+'は単に連結し、それ自身のスペースを追加しません。 – Ujjwal

+0

'、'を使用します。 –

0

あなたは、Python 3で2つの文字列を印刷したい場合は、あなたが1つのブラケットでそれらのすべてが含まれている必要があり、 print (('test is ')+('this'))のように、(文字列)にprint('test is ')(非タイプ)を追加するのではなく、すべて1つの文字列として出力されます。

関連する問題