Pythonでは、文字列はこれまで使ってきたような数値とは、まったく違った種類のデータです。
たとえば、数値同士の足し算では、値と値を加算した結果が得られます。整数の 123 と 456 を足せば、579 になります。
In [5]:
123 + 456
Out[5]:
しかし、文字列同士の足し算は、文字列の連結になります。文字列の "ABC" と "DEF" を足すと、"ABCDEF" になります。
In [7]:
"ABC" + "DEF"
Out[7]:
また、数値と文字列を足すと、次のようなエラーになり、加算することはできません。
In [8]:
123 + "ABC"
文字列と数値の違い¶
数値データ と、数字からなる文字列 の違いに注意してください。
123 や 456 は、数値データです。数値データですから、数値同士の演算ができます。123 * 456 という式は、数値データ 123 と 456 の乗算を行います。
In [16]:
123 * 456
Out[16]:
しかし、123 にダブルクオーテーションマークをつけた "123" は、数値の123 ではありません。見た目はよく似ていますが、こちらは 1、2、3の3つの文字が並んだ、文字列の123 です。
"123" は数値ではありませんから、乗算などの、数値に用意された演算などは行なえません。たとえば、"Hello" * "World" の掛け算をしろ、と言われても困ってしまいますよね。ですから、"123" * "456" という文字列と文字列の乗算を行うと、次のようにエラーになります。
In [17]:
"123" * "456"
このように、数値 と 文字列 は、まったく違う種類のデータなのです。