LoginSignup
2
1

More than 3 years have passed since last update.

[Python]type関数から型名を文字列で取得してみた

Last updated at Posted at 2020-01-17

Motive

paizaでRPGゲームとコード学習を融合したコードクロニクルが最近リリースされました。

それで試しに問題をといていったのですが、入門者向けなので基本的な構文についての問題が繰り返し出題される形式だったので難易度は難しくないですが、下記の問題が出題されました。(全く同一ではないです。)


#piの変数型を出力してください
pi = 3.14

print("") #int, str, floatのどれかを入力してください。

答えは print("float") とすればいいのですが type関数がせっかくあるので利用できないかと考えたとです。:rolling_eyes:

Method

シンプルにtype関数を使うと、、、

>> type(pi)
#<class 'float'> 

の通りクラスの型が出力されます。

単純に str() を使えばいいかなと思ったのですが、、、

>> str(type(pi))
#"<class 'float'>"

"<class 'float'>" が文字列として出力されるので、期待しているfloatとは異なります。

Python documenttype関数について読んでみると、

name 文字列はクラス名で、 __name__ 属性になります。

と書かれていたのでクラスの属性を取得すればfloatが取得できます。

>> type(pi).__name__
# `float`

Digest

#変数型を出力してください の問題が出たときは整数・文字列・小数点のいずれかの型でも
type(pi).__name__
と書けば正解になる銀の弾です。:gun:

Future

コードクロニクルなんすけど、来年度から政府がゴリ押し:robot:で進めているプログラム学習に合わせたアプリゲームだと思うのですが、、、
ゲームバランスを考えつつ問題を作る、問題を作る仕組みを設計すると開発メンバーを揃えないと運用が厳しそうです。
入門者向けであればこの難易度でいいかもしれません。

Reference

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1