Python100本ノック 36本目~40本目
Python100本ノック、36本目から40本目についてです。
36本目:zip()を使ってmoviesという辞書を作れ
一応問題無く解けました。
自分の解法:zip
を使いながらfor文でそれぞれの値を辞書に登録する
記事内の解法:dict(zip(titles, plots))
のみ
dict
を使えば、引数付で辞書の初期化ができるんですねー。
37本目:クラスのオブジェクト辞書から直接初期化しよう
直接初期化する方法は分かりませんでした・・・。
~Pythonの引数の特別な形式~
*args
:任意の固定長リストやタプルを受け取る**kwargs
:任意の固定長辞書を受け取る
この**kwargs
の形式に沿って、Elements(**与えられた辞書オブジェクト)
のように引数をとれば良かったんですね。
38本目:クラスを編集しprint(hydrogem)だけでオブジェクト属性の値が表示されるようにせよ
クラスにdef __str__(self)
を定義するところがポイントでしたが、使い方をよく分かっていませんでした。
def __str__(self): return "返したい文字列"
39本目:クラスを編集し、name,symbol,number属性を非公開にし、そしてそれぞれについて値を返すゲッターを定義せよ。
属性を非公開にする@property
を知りませんでした。
それ以外は特に問題無く解くことができました。
40本目:Bear, Rabbit, Octothorpeの3つのクラスを定義せよ。
簡単なクラス定義の問題でした。特に問題無く解けました。
zip()
、*args
、**kwargs
+クラスの基礎的な問題の回でした。
*args
と**kwargs
は難しそうだと思っていましたが、意外と何とかなりました。
def __str__(self)
は、C/C++とかで似たことをやりましたが、Pythonでの
記法が分かりませんでした。
先入観の持ちすぎはあまり良くないですね笑
それと、他言語に対する応用を利かせられるようになりたいです・・・。
内定先の社員さんから応用力の重要性のお話を聴いていましたが、
今回の演習を通じてよりその大切さを感じました!