文字列はこれまで使ってきたような数値とは、まったく違った種類のデータです。
例えば、数値同士の足し算では、値と値を加算した結果が得られます。整数の 123
と 456
を足せば、579
になります。
In [5]:
123 + 456
Out[5]:
しかし、文字列同士の足し算は、文字列の連結になります。文字列の "123"
と "456"
を足すと、"123456"
になります。
In [6]:
"123" + "456"
Out[6]:
また、数値と文字列を足すと、次のようなエラーになり、加算することはできません。
In [3]:
123 + "456"
文字列の数値化¶
数字だけからなる文字列は、次のように int()
を使って整数に変換できます。
In [10]:
text = "123"
print(int(text))
int()
をつかって、文字列 "123"
と "456"
を、数字に変換してから足してみましょう。
In [12]:
text1 = "123"
text2 = "456"
print(text1, "と", text2, "を足すと", int(text1) + int(text2), 'になります')
また、float()
使うと、float型に変換できます。
In [16]:
text = "123.4"
float(text)
Out[16]:
数字以外の文字は、数値にはできません。次のようなエラーになります。
In [18]:
int("Hello")
数値の文字列化¶
int()
を使って文字列を整数に変換するのとは逆に、str()
を使って数値を文字列に変換できます。
In [18]:
num = 123
str(num)
Out[18]:
文字列データと数値データを組み合わせて文章を出力するとき、数値を文字列に変換してから、最終的な文字列を作成することがあります。
たとえば、身長の数値データが height
という変数に入っているとき、height
の値を使って「わたしの身長は xxx cm です。」というメッセージを出力する方法を考えてみましょう。
「わたしの身長は xxx cm です。」の xxx の部分を、変数 height
の値で置き換えて出力したいわけですが、こんなときは、height
の値を str()
で文字列に変換し、前後の わたしの身長は
という文字列と、cm です。
という文字列を加算して作成できます。
In [21]:
height = 172 # height に 172を代入する
print("わたしの身長は " + str(height) + " cm です")