ゼロからのPython入門講座文字列と入出力 文字列の演算子

文字列と入出力文字列文字列の演算子文字列と数値print() 関数input() 関数メソッド

Pythonでは、文字列はこれまで使ってきたような数値とは、まったく違った種類のデータです。

たとえば、数値同士の足し算では、値と値を加算した結果が得られます。整数の 123456 を足せば、579 になります。

In [5]:
123 + 456
Out[5]:
579

しかし、文字列同士の足し算は、文字列の連結になります。文字列の "ABC""DEF" を足すと、"ABCDEF" になります。

In [7]:
"ABC" + "DEF"
Out[7]:
'ABCDEF'

また、数値と文字列を足すと、次のようなエラーになり、加算することはできません。

In [8]:
123 + "ABC"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-b5cc74393e03> in <module>
----> 1 123 + "ABC"

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

文字列と数値の違い

数値データ と、数字からなる文字列 の違いに注意してください。

123456 は、数値データです。数値データですから、数値同士の演算ができます。123 * 456 という式は、数値データ 123456 の乗算を行います。

In [16]:
123 * 456
Out[16]:
56088

しかし、123 にダブルクオーテーションマークをつけた "123" は、数値の123 ではありません。見た目はよく似ていますが、こちらは 123の3つの文字が並んだ、文字列の123 です。

"123" は数値ではありませんから、乗算などの、数値に用意された演算などは行なえません。たとえば、"Hello" * "World" の掛け算をしろ、と言われても困ってしまいますよね。ですから、"123" * "456" という文字列と文字列の乗算を行うと、次のようにエラーになります。

In [17]:
"123" * "456"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-e785b559eedc> in <module>
----> 1 "123" * "456"

TypeError: can't multiply sequence by non-int of type 'str'

このように、数値文字列 は、まったく違う種類のデータなのです。

Copyright © 2001-2023 python.jp Privacy Policy python_japan
Amazon.co.jpアソシエイト
Amazonで他のPython書籍を検索