文字列や数値、日付の型を扱っていると、以下のような場面に直面することもあるかと思います。
文字列 ⇔ 日付に変換したい
そこで今回はPythonでできる型変換について、以下の内容を解説していきます。
- 数値 ⇔ 文字列の変換
- 文字列 ⇔ 日付(date)の変換
数値や文字列、日付の変換は実際によく使われますのでこの機会にしっかりと理解しておきましょう。
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
数値 ⇔ 文字列の変換
ここでは数値と文字列の相互変換について見ていきましょう。
文字列から数値の変換
演算処理を実行するとき、数値と数値の演算は可能ですが、数値と文字列(String)の演算はできません。たとえば、外部ファイルやデータベースから取得した数値の値が文字列だった場合、そのまま演算しようとして「TypeError」が発生してしまいます。
num1 = 10 num2 = '20' print(num1 + num2)
実行結果:
~ TypeError: unsupported operand type(s) for +: 'int' and 'str'
そのため、文字列型の数値を演算に使用する場合は、文字列の数値を数値型に型変換することで演算が可能になります。文字列をint型に変換してみましょう。
サンプルプログラム:
num1 = 10 num2 = '20' print(num1 + int(num2))
実行結果:
30
文字列の数値が格納されているnum2をint()の引数に指定「int(num2」することによって、演算することが可能になりました!なお、型変換されたか確認するためにはtype関数を使用すると便利です。
サンプルプログラム:
num = '10' print(type(int(num2)))
実行結果:
<class 'int'>
type関数については、以下の記事で詳しく解説しています!
文字列から浮動小数点数に変換
浮動小数点数の文字列を前述したintで数値に変換しようとすると、「ValueError」のエラーが発生します。これは変換時に文字列の中に小数点を表すピリオド「.」やカンマ「,」などが含まれていることによるものです。
そのため、浮動小数点数の文字列をfloat型に変換するためにはfloat()を使用します。サンプルプログラム:
num1 = 10 num2 = '20.123' print(num1 + float(num2))
実行結果:
30.123
数値から文字列の変換
数値から文字列へ変換する場合はstr()を使用します。
サンプルプログラム:
num1 = 10 num2 = 30 print(str(num1) + str(num2))
実行結果:
1030
このようにstr()の引数に数値型を指定することで、文字列に変換が可能です。
文字列 ⇔ 日付(date)の変換
日付から文字列の変換
datetimeで取得した値を日付型として扱いたい場合は文字列型として扱いたい場合もあります。日付型から文字列型へ変換するには、datetimeで日付を取得したあと、strftimeを使用して、引数に文字列で取得するためのフォーマットを指定することで文字列に変換することが可能です。
サンプルプログラム:
import datetime date = datetime.datetime.now() sdate = date.strftime('%Y/%m/%d %H:%M:%S') print(sdate) print(type(sdate))
実行結果:
2018/07/24 01:30:48 <class 'str'>
ここではstrftimeの引数で「yyyy-mm-dd hh:mm:ss」の形式でフォーマットを指定しています。
文字列から日付の変換
続いて文字列の日付から、日付型へ変換する方法を見ていきましょう。以下のサンプルをご覧ください
サンプルプログラム:
import datetime sdate = '2018-07-24 01:30:23' date = datetime.datetime.strptime(sdate, '%Y-%m-%d %H:%M:%S') print(type(date))
実行結果:
<class 'datetime.datetime'>
strptimeの引数に文字列の日付とフォーマットを指定することで日付型への変換が可能になります。
まとめ
ここではPythonの型変換について解説しました。
- 数値 ⇔ 文字列の変換
- 文字列 ⇔ 日付(date)の変換
数値と文字列の相互変換や文字列と日付の相互変換などは、システムやアプリケーションを作る上で、必要なこともありますので変換方法については理解しておきましょう。もし、型変換の方法を忘れてしまったら、この記事を思い出してくださいね!