Pythonの変数に代入されている値の型を確認する方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonの変数の型の種類を確認する方法について現役エンジニアが解説しています。Pythonの変数の型には、int型やstr型、list型やdict型などがあります。変数の型の種類を確認する方法には、typeやisinstanceなどのメソッドを使う方法があります。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
Pythonの変数に代入されている値の型を確認する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Pythonの変数に代入されている値の型を確認することで、値の型に応じて様々な条件に合った処理を複雑に実装することが可能になります。
実務においても、他のプログラマーが実装したコードの変数内で、どのような型の値が利用されているかを確認しながら保守作業を行うことが可能になります。
目次
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonの変数に代入されている値の型を確認する方法について詳しく説明していくね!
お願いします!
条件分岐において変数に代入されている値の型によって分岐させる方法をとることがあります。
今回はその方法について解説していきます。
変数に代入されている値の型について
変数に代入されている値の型には以下のような種類があります。
変数の型 | データ型の説明 | データ型の例 |
---|---|---|
int型 | 整数の型です。 | 例 1, 100, -3, 0 |
float型 | 小数の型です。 | 例 1.6, 100.8342, -23.42523 |
str型 | 文字の型です。 | 例おはよう, Hello World! |
list型 | リストの型です。 | 例 [1, 2, 3], [‘A’, ‘B’, ‘こんにちは’] |
dict型 | 辞書の型です。 | 例 {‘id’: 1, ‘Name’: ‘Yamada’, ‘読書リスト’: [‘細雪’, ‘雪国’, ‘雨’]} |
None型 | Noneの型です。 |
変数の型の種類を確認する方法
変数に代入されている値の型の種類を確認する方法には以下のような種類があります。
変数の型の種類の確認方法 | 説明 |
---|---|
type(object) | objectの型を調べるのに使用します。 |
isinstance( object, classinfo) | objectの型がclassinfoと一致しているかを調べるのに使用します。 |
classinfoにはクラスや型を一つまたは複数指定することができます。
typeは、単に変数の型を調べたいときに使います。
一方でisinstanceは条件分岐等で変数が指定した型かどうかの判定に用いられます。
isinstanceを用いると条件分岐の時点で、classinfoで指定した型であることを明示しています。
classinfoで指定した型であることを予め明示することで、その後の処理の意図も汲みやすいため、typeよりもisinstanceを使うことが多いです。
使い分けをできるようにしておくことをお勧めします。
実際に確認してみよう
型の判定に用いることができるものを色々と試していくために、 == または is も今回は使います。
もちろんコードルール推奨のisinstanceを使った方法もみていきましょう。
今回は変数がlistかdictかで処理を分ける場合を想定しています。
コード
body_list = ['はな', 1,'みみ', 2, 'くち', 3, 'あし', 4]
body_dict = {'はな': 1, 'みみ': 2, 'くち': 3, 'あし': 4}
if type(body_list) == list:
print('{}です'.format(type(body_list)))
for el in body_list:
if type(el) is str:
print(el)
if isinstance(body_dict, dict):
print('{}です'.format(type(body_dict)))
for key in body_dict.keys():
if isinstance(key, str):
print(key)
解説
1行目のbody_list = [‘はな’, 1,’みみ’, 2, ‘くち’, 3, ‘あし’, 4]では、body_listに、’はな’, 1,’みみ’, 2, ‘くち’, 3, ‘あし’, 4というリスト値を代入しています。
2行目のbody_dict = {‘はな’: 1, ‘みみ’: 2, ‘くち’: 3, ‘あし’: 4}では、body_dictに、’はな’: 1, ‘みみ’: 2, ‘くち’: 3, ‘あし’: 4という辞書値を代入しています。
3行目のif type(body_list) == list:では、もし、body_listの型(type)がlistと同じであればと言う条件文を記載しています。
4行目のprint(‘{}です’.format(type(body_list)))では、body_listの型(type)がlistと同じだった場合、body_listの型(type)をprint文で表示しています。
listという表示がされているように、body_listの型(type)はリストです。
5行目のfor el in body_list:では、for文を利用して、 body_listの値をel変数にひとつひとつ代入しています。
6行目のif type(el) is str:では、elの型(type)が文字列(str)であれば、という条件文を記載しています。
print(el)では、elをprint文で表示しています。
7行目のif isinstance(body_dict, dict):では、body_dictがdict型であるかを、isinstance関数で判断しています。
8行目のprint(‘{}です’.format(type(body_dict)))では、body_dictがdict型であれば、body_dictの型を表示します。
dictと表示されるので辞書型であることが分かります。
9行目のfor key in body_dict.keys():では、 body_dict.keys()の値を変数keyに代入するfor文を記載しています。
10行目のif isinstance(key, str):では、変数keyが文字列(str)であれば、という条件文を記載しています。
11行目のprint(key)では、keyをprint文で表示しています。
結果
まとめ
型をマスターすることで、Pythonの言語に対する理解が深まります。
また、上級者になっていくためにより読みやすいコードが書けるようになっていきましょう。
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Pythonを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!