#[Python]02章-02 文字列の取り扱い
前回は数値同士の演算に関する説明が多かったですが、今回は文字や文字列について扱っていきたいと思います。
##文字列と連結演算子
まず、Pythonコンソールから以下のプログラムを入力してみてください。
すると以下のように計算結果が表示されます。
>>> print(10+20)
30
では次に「10+20」の部分を「'」(シングルクオーテーション)でくくって実行をしてください。
>>> print('10+20')
10+20
Pythonでは数値をシングルクオーテーションでくくると、文字列として扱われます。
Pythonコンソールから以下のプログラムを入力してみてください。
すると以下のように、文字の連結となります。
>>> print('10'+'20')
1020
ここで、+(プラス)は加算ではなく、文字列同士を連結していることになります。これを連結演算子と言います。
また、*(アスタリスク)を用いると、繰り返しができます。
Pythonコンソールから以下のプログラムを入力してみてください。
すると以下のように、指定した数の分が表示されます。
>>> print('Yes' * 3)
YesYesYes
##文字列から数値への変換
Pythonコンソールから以下のプログラムを入力してみてください。
sという変数に'100'という文字列を代入します。(シングルクオーテーションで囲っているので文字列です)
さらに、sの内容を表示すると以下のように'100'という文字列が表示されます。
>>> s = '100'
>>> s
'100'
ではこの状態で、sから数値(文字列ではない)を減算します。
すると以下のようにエラーとなります。
>>> s - 10
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'
このエラーは何を意味しているかというと、
「'str'(文字列)と'int'(整数)の演算はサポートはしていません」
という意味です。
つまり、変数sを文字列から数値にすれば計算できるということになります。
では、変換するにはどうすればよいでしょうか?
これは以下のようにして変数sに代入されている文字列を数値に変換してから、減算をします。
>>> int(s) - 10
90
int関数は整数に変換するための関数です。これにより、'100'が数値の100となり、計算されるようになります。
##数値から文字列への変換
Pythonコンソールから以下のプログラムを入力してみてください。
今回はprint()関数は使用しないで行きたいと思います。(使用しても構いません)
>>> 'Number is ' + 5
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
これも先ほどと同じで、文字列と数値の足し算(もしくは結合)はできないことを意味します。
今回は数値の5のほうを文字列に変換していきたいと思います。
Pythonコンソールから以下のプログラムを入力してみてください。
>>> 'Number is ' + str(5)
'Number is 5'
str関数は数値を文字列にする関数です。こうすることで結合ができることを確認できます。今回は5という数値で試しましたが、適切な数値の変数を用いても文字列に変換可能です。
##最後に
今回は文字列と数値のそれぞれの変換について触れました。よくプログラムを組んで実行する際にエラーとなるのは変換忘れが原因でなることも多いようです。
この文字列や数値の型変換はよく使われますので是非身に着けてください。
今回出てきた関数は以下の通りです。
- int()
- str()
###【目次リンク】へ戻る