【Python入門】さまざまな型変換の方法をわかりやすく解説!

文字列や数値、日付の型を扱っていると、以下のような場面に直面することもあるかと思います。

数値 ⇔ 文字列に変換したい
文字列 ⇔ 日付に変換したい

そこで今回はPythonでできる型変換について、以下の内容を解説していきます。

  • 数値 ⇔ 文字列の変換
  • 文字列 ⇔ 日付(date)の変換

数値や文字列、日付の変換は実際によく使われますのでこの機会にしっかりと理解しておきましょう。

数値 ⇔ 文字列の変換

ここでは数値と文字列の相互変換について見ていきましょう。

文字列から数値の変換

演算処理を実行するとき、数値と数値の演算は可能ですが、数値と文字列(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)の変換

数値と文字列の相互変換や文字列と日付の相互変換などは、システムやアプリケーションを作る上で、必要なこともありますので変換方法については理解しておきましょう。もし、型変換の方法を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

侍テック編集部

侍テック編集部

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー