str()、repr()、および `` 演算子は機能と機能の点で非常に似ていますが、実際には、 repr() および `` はオブジェクトの「公式」文字列表現を返します。つまり、ほとんどの場合、オブジェクトは評価操作 (組み込み関数 eval() を使用) を通じて取得できますが、str() は異なります。 str() は、オブジェクトの読み取り可能な文字列表現を生成することに特化しています。その戻り結果は、通常、eval() の評価には使用できませんが、print ステートメントの出力での使用には非常に適しています。 eval() 組み込み関数を使用して元のオブジェクトを取得するために、 repr() によって返されるすべての文字列を使用できるわけではないことを再度思い出してください。
つまり、repr() の出力は Python にとってよりフレンドリーであり、str() の出力はユーザーにとってよりフレンドリーです。それでも、多くの場合、3 つの出力は依然としてまったく同じです。
興味があれば、str、repr、および "" を比較する独自のコードを作成できます。