こんにちはフロントエンドエンジニアのまさにょんです!
今回は、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!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!