mocchaso note

サーバーエンジニアが何か色々呟いているところ。

Python100本ノック 36本目~40本目

Python100本ノック、36本目から40本目についてです。

qiita.com

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での
記法が分かりませんでした。

先入観の持ちすぎはあまり良くないですね笑
それと、他言語に対する応用を利かせられるようになりたいです・・・。
内定先の社員さんから応用力の重要性のお話を聴いていましたが、
今回の演習を通じてよりその大切さを感じました!