Pythonプログラミング初心者に向けて、型の確認方法について解説します。
前回、型の基本・型の変換について学びました!
型が合っていないとうまく値同士の処理ができないことを勉強して型を意識することが大事なのがわかりました。
型の考え方を知っておくことの大切さがわかったみたいで良かったです!
でも、型を意識していくと変数に格納した値の型が何だったのかを覚えておくのは大変です..
そこで、変数に格納している値が何の型なのか調べる方法を教えますね!
前回、型の基本・型の変換について学びました。
前回のように変数同士で演算子を使う時に、基本的には異なる型同士ではエラー(TypeError)が発生します。
TypeErrorが発生した時に用いている値の型を確認することで、型の変換を行いやすくなります。
型の確認
型の確認にはtype関数「type()」を用います。
type関数の()内に型を確かめたい値を入れて用います。
以下のプログラムで確認してみましょう。
#int型の変数num1を生成
num1 = 3
#変数num1の型を出力
print(type(num1))
#実行結果 <class 'int'>
このコードでは「type(num1)」で変数num1の型を取得しています。
そのため、「print(type(num1))」とすることで、変数num1の型を出力します。
出力結果は「<class 'int'>」となり、変数num1の型がint型(整数型)であることが分かりました。
他の型の変数に対しても、同様に型を確認できます。
#float型の変数num2を生成
num2 = 3.1
#変数num2の型を出力
print(type(num2))
#実行結果 <class 'float'>
出力結果は「<class 'float'>」となり、変数num2の型がfloat型(小数型)であることが分かります。
#str型の変数textを生成
text = 'Python勉強中'
#変数textの型を出力
print(type(text))
#実行結果 <class 'str'>
出力結果は「<class 'str'>」となり、変数textの型がstr型(文字列型)であることが分かります。
変数に入っている値の型を確認することができました!
これでTypeErrorが発生したら値の型を調べながらエラーを解消できそうです!
コードが複雑になってくると変数の値の間違いが増えてきます!
複雑なプログラムでもTypeErrorが出たら落ち着いて、まずは変数の型をtype()で調べるのが良いですよ!
型の確認方法について、理解できたでしょうか?
続いて、前回の型の変換の復習をしながら、型変換と型の確認を組み合わせてみます。
type関数による型の確認を行いながら理解を深めていきましょう!
型変換と型確認
以下のプログラムを実行してみてください。
このコードではstr型の変数をint型に変換をしており、変換の前後で型を確認しています。
プログラムの意味が理解できるでしょうか?
#str型の変数text2を生成
#text2には文字列"1"を代入
text2 = '1'
#変数text2の型を出力
print(type(text2))
#実行結果 <class 'str'>
#text2の型をint型に変換し
num3に代入
num3 = int(text2)
#変数num3の型を出力
print(type(num3))
#実行結果 <class 'int'>
最初に変数text2に文字列の「"1"」を代入しています。
あくまで「""」で囲んでいるので文字列の「"1"」です。
そのため、「print(type(text2))」で変数text2の型を出力すると「<class 'str'>」と表示され、str型(文字列型)であることが分かります。
その後、変数text2の文字列をint型に変換して、変数num3に代入しています。
そのため、変数num3には文字列「"1"」を変換したint型(整数型)の「1」が代入されています。
したがって、「print(type(num3))」で変数num3の型を出力すると「<class 'int'>」と表示され、int型(整数型)に変換されていることがわかります。
やりました!
型の確認を行いながら、型の変換ができました!
内容も理解できたみたいでうれしいです!
最後に型の変換について補足しました!
型の変換と型の確認がスムーズにできるようになったでしょうか?
最後に型変換の注意点を補足します。
注意!型の変換ができないケース
以下のプログラムでは変数text3の文字列「"テスト"」の型を確認した上で、int型(整数型)に変換しようとしていますが、エラーとなってしまいました。
#str型の変数text3を生成
text3 = 'テスト'
#変数text3の型を出力
print(type(text3))
#実行結果 <class 'str'>
#text3の型をint型に変換
num4 = int(text3)
"""
実行結果
-----------------------------------------
ValueError Traceback (most recent call last)
Input In [11], in <cell line: 10>()
5 print(type(text3))
7 #実行結果 <class 'str'>
8
9 #text3の型をint型に変換
---> 10 num4=int(text3)
ValueError: invalid literal for int() with base 10: 'テスト'
"""
「ValueError」というエラーが出力されたと思います。
エラーの末尾には、
ValueError: invalid literal for int() with base 10: 'テスト'
翻訳すると
「バリューエラー(値のエラー): 10進数で用いるint()のためには無効な文字: 'テスト'」
と表示されています。
つまり、変数text3は10進数の数値に変換できない文字列なので、変換できないですよ!と言われています。
感覚的にも文字列「"テスト"」を整数値の数値には変換できそうにないことは理解していただけると思います。
このように不適切な型への変換を行おうとするとエラーとなりますので、注意してください!
何でも型変換できるわけじゃないってことですね!
扱っている値とその型を意識することが重要ですね!
型の理解が深まってきたみたいで良かったです!
それじゃあ確認問題を解いてもっと理解を深めていきましょうね!
それでは、これまでの内容を以下の問題でおさらいしてみましょう!
確認問題
長辺5cm、短辺2.2cmの長方形の面積を求めていきます。
①変数「chohen」に整数値「5」、変数「tanpen」に小数値「2.2」を格納して変数を作りましょう。
②変数「chohen」「tanpen」の型を出力しましょう。
③変数「chohen」と「tanpen」を掛けて変数「menseki」に代入しましょう。
④変数「menseki」の型を出力しましょう。
⑤変数「menseki」を文字列型に変換して、文字列の結合を行い「長方形の面積は○㎠」と出力しましょう。
確認問題 解答例
以下が解答例です。実際に自分で書いて実行してみましょう。
#長辺5cm、短辺2.2cmの長方形の面積を求めていきます。
#①変数「chohen」に整数値「5」、
# 変数「tanpen」に小数値「2.2」を格納
chohen = 5
tanpen = 2.2
#②変数「chohen」「tanpen」の型を出力
print("問題② chohenの型",type(chohen))
print("問題② tanpenの型",type(tanpen))
#実行結果
# 問題② chohenの型 <class 'int'>
# 問題② tanpenの型 <class 'float'>
#③変数「chohen」と「tanpen」を掛けて
# 変数「menseki」に代入
menseki = chohen * tanpen
#④変数「menseki」の型を出力
print("問題④ mensekiの型",type(menseki))
#実行結果
# 問題④ mensekiの型 <class 'float'>
#⑤変数「menseki」を文字列型に変換して、
# 文字列の結合を行い「長方形の面積は○㎠」と出力
print("問題⑤","長方形の面積は" + str(menseki) + "㎠")
#実行結果
# 問題⑤ 長方形の面積は11.0㎠
変数を更新した後で出力する問題③と⑤では、以前学んだprint関数の便利な使い方を用いて、問題番号の横に更新した変数を出力しました。
まとめ
いかがでしたでしょうか。
今回は型の確認・型の変換の補足情報を解説しました。
次回からもPython初心者に向けて、詳しく解説していきます。
お楽しみに!
このサイトの記事一覧へは以下へアクセス!
コメント