Motive
paizaでRPGゲームとコード学習を融合したコードクロニクルが最近リリースされました。
それで試しに問題をといていったのですが、入門者向けなので基本的な構文についての問題が繰り返し出題される形式だったので難易度は難しくないですが、下記の問題が出題されました。(全く同一ではないです。)
#piの変数型を出力してください
pi = 3.14
print("") #int, str, floatのどれかを入力してください。
答えは print("float")
とすればいいのですが type
関数がせっかくあるので利用できないかと考えたとです。
Method
シンプルにtype
関数を使うと、、、
>> type(pi)
#<class 'float'>
の通りクラスの型が出力されます。
単純に str()
を使えばいいかなと思ったのですが、、、
>> str(type(pi))
#"<class 'float'>"
"<class 'float'>"
が文字列として出力されるので、期待しているfloat
とは異なります。
Python documentでtype関数について読んでみると、
name 文字列はクラス名で、 __name__
属性になります。
と書かれていたのでクラスの属性を取得すればfloat
が取得できます。
>> type(pi).__name__
# `float`
Digest
#変数型を出力してください
の問題が出たときは整数・文字列・小数点のいずれかの型でも
type(pi).__name__
と書けば正解になる銀の弾です。
Future
コードクロニクルなんすけど、来年度から政府がゴリ押しで進めているプログラム学習に合わせたアプリゲームだと思うのですが、、、
ゲームバランスを考えつつ問題を作る、問題を作る仕組みを設計すると開発メンバーを揃えないと運用が厳しそうです。
入門者向けであればこの難易度でいいかもしれません。