Pythonの基本データ型と型チェックに関する解説

Pythonの基本データ型

ブール型(bool)

PythonのTrueとFalseは、1と0と同等であり、計算に使用できます。C++のtrueとfalseは小文字ですが、PythonではTrueとFalseで、先頭を大文字にする必要があります。

文字列型(str)

単一引用符または二重引用符で囲みます。文字列は+で結合でき、*で複製できますが、-で同じ部分を削除することはできません。例えば:

text1 = 'こんにちは'
text2 = '世界'
print(text1 + text2)
text1 = text1 * 3
print(text1)

結果は:

こんにちは世界
こんにちはこんにちはこんにちは

三重引用符(単一引用符または二重引用符のどちらでも同じです)で囲むこともできます。また、三重引用符は複数行コメントとしても使用できます。

整数型(int)

Pythonは直接長整数をサポートしており、大きな整数の計算を簡単に行うことができます。

浮動小数点型(float)

小数、実数、小数点を含む数値です。

e記法

MATLABと同様に、Pythonもeを使用して10のべき乗を表します。例えば4e5は400000.0を表します。注意:この時の数値は浮動小数点数であり、eの前後が小数であっても最終的に浮動小数点数になります。

データ型の変換

int():整数型に変換します。注意:小数を整数に変換すると小数部分が切り捨てられます。非整数の文字列は変換できません。 float():浮動小数点型に変換します。同様に、数字でない文字列は変換できません。 str():文字列に変換します。

print(int(7.8))
print(int("4"))  # int("4.2")はできません
print(float(6))
print(str(6.7))
print(str(6e8))
print(str(6e18))
print(str(False))

結果は:

7
4
6.0
6.7
600000000.0
6e+18
False
型の取得関数type()とisinstance()
type(object)

パラメータobjectの型を取得できます。type自体はクラスであり、**すべての型はtypeクラスです。**例えば:

print(type(2))  # <class 'int'>
print(type(2) == int)  # True
print(type(True) == bool)  # True
print(type("2.0") == str)  # True
print(type(2.0) == float)  # <class 'float'>
print(type(type(2)) == type)  # True
print(type("2.0") == type)  # False
isinstance(object, classinfo)

2つのパラメータを取り、objectがclassinfoの型であればTrueを返し、そうでなければFalseを返します。例えば:

print(isinstance(2, int))  # True
print(isinstance(2.0, float))  # True
print(isinstance("2.0", str))  # True
print(isinstance(True, bool))  # True
print(isinstance(2.0, int))  # False
print(isinstance(2, bool))  # False

違い:

type()は、サブクラスを親クラスの型と見なしません(継承関係を考慮しません)。 isinstance()は、サブクラスを親クラスの型と見なします(継承関係を考慮します)。

class BaseClass:
    pass
 
class SubClass(BaseClass):
    pass

print(isinstance(BaseClass(), BaseClass))  # True
print(type(BaseClass()) == BaseClass)  # True
print(isinstance(SubClass(), BaseClass))  # True
print(type(SubClass()) == BaseClass)  # False

タグ: Python データ型 型チェック bool str

7月27日 16:21 投稿