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"
このように、数値 と 文字列 は、まったく違う種類のデータなのです。