【Python】型定義(型宣言)と型の確認方法、型変換(キャスト)の方法まとめ

Python-Type

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、Pythonで型定義(型宣言)と型の確認、型変換(キャスト)の方法について解説します。

Pythonで型定義・型宣言と型の確認をする

Pythonは、JavaScriptやPHPと同様に「動的型付け」に分類されるプログラミング言語です。

なので、型を宣言・定義しなくても入ってきたデータによって動的に型が決まります。

ただ、JavaScriptにおけるTypeScriptしかり、動的な型付け言語にも「型安全」や「型による可読性」を求める動きが強まっている今日、この頃です。

Pythonでも型定義ができるので、活用していきましょう。

Pythonでは「 変数: 型 」の形で型を宣言することができます。

また、Pythonにおけるデータ型の確認方法には、type関数を使います。

例えば、

type(targetData)

とすると targetData の型情報を取得することができます。

### Python での型宣言 & 型-Check

import datetime

# str型:文字列
string: str = 'ロボ玉'

print(string) # ロボ玉
print(type(string)) # <class 'str'>

# int型:整数
integer: int = 12

print(integer) # 12
print(type(integer)) # <class 'int'>

# float型:小数点
double: float = 12.34

print(double) # 12.34
print(type(double)) # <class 'float'>


# bool型:真偽値
boolean: bool = True

print(boolean) # True
print(type(boolean)) # <class 'bool'>

# list型:リスト
array: list = ['ロボ玉試作1号機', 'ロボ玉試作2号機', 'ロボ玉試作3号機']

print(array) # ['ロボ玉試作1号機', 'ロボ玉試作2号機', 'ロボ玉試作3号機']
print(type(array)) # <class 'list'>


# tuple型:タプル => 定数-List
tupleData: tuple = ('robotama', 'hakutou', 'momo')

print(tupleData) # ('robotama', 'hakutou', 'momo')
print(type(tupleData)) # <class 'tuple'>


# dict型:辞書
dictionary: dict = {
    'robotama-1': 'ロボ玉試作1号機',
    'robotama-2': 'ロボ玉試作2号機',
    'robotama-3': 'ロボ玉試作3号機',
}

print(dictionary) # {'robotama-1': 'ロボ玉試作1号機', 'robotama-2': 'ロボ玉試作2号機', 'robotama-3': 'ロボ玉試作3号機'}
print(type(dictionary)) # <class 'dict'>


date: datetime = datetime.datetime.now()

print(date) # 2022-09-30 22:08:11.230120
print(type(date)) # <class 'datetime.datetime'>

Pythonで型変換(キャスト)をする

Pythonで、型を変換(Cast)する方法は、次のような形になります。

型名(targetData)

ちなみに、targetData は型変換(キャスト)したいデータです。

例えば「 stringInt = ’12’ 」と言う文字列データをint型(整数型)のデータに変換したい場合は、

int(stringInt)

とすることで、int型(整数型)に型変換(キャスト)できます。

それでは、実際の使い方をSampleCodeで確認していきましょう。

### Python での型変換(Cast) ###

import datetime

# 文字列str型から整数int型への変換
stringInt = '12'

integer2 = int(stringInt)

print(integer2, type(integer2))
# 12 <class 'int'>


# 文字列str型から浮動小数点float型への変換
stringDouble = '12.34'

double2 = float(stringDouble)

print(double2, type(double2)) 
# 12.34 <class 'float'>


# 整数int型から文字列str型への変換

num1 = 30

str1 = str(num1)

print(str1, type(str1))
# 30 <class 'str'>



# 浮動小数点float型から文字列str型への変換

num2 = 30.45

str2 = str(num2)

print(str2, type(str2))
# 30.45 <class 'str'>


# 日付datetime型から文字列str型への変換

date1 = datetime.datetime(2022,9,30,22,15,30)

print(date1, type(date1))
# 2022-09-30 22:15:30 <class 'datetime.datetime'>


strDate = date1.strftime("%Y/%m/%d %H:%M:%S")

print(strDate, type(date1.strftime("%Y/%m/%d %H:%M:%S")))
# 2022/09/30 22:15:30 <class 'str'>


# 文字列str型から日付datetime型への変換

str1 = '2022/09/30 22:15:30'

date2 = datetime.datetime.strptime(str1, '%Y/%m/%d %H:%M:%S')

print(date2, type(datetime.datetime.strptime(str1, '%Y/%m/%d %H:%M:%S')))
# 2022-09-30 22:15:30 <class 'datetime.datetime'>

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

Python関係書籍

参考・引用

  1. 図解!Python データ型を徹底解説!(確認・変換・指定方法と種類一覧)

最近の投稿