LoginSignup
4
6

More than 5 years have passed since last update.

「自作Python100本ノック」6日目(丸1日Python生活:26本〜30本目)

Last updated at Posted at 2018-05-12

「自作Python100本ノック」6日目です。

今日は、起きてからずっと靴を買いに行く以外にずっとPythonの勉強をしていました。
今は『入門 Python3』という本を学校の図書館で借りて降り、そこの問題をひたすら解いています。

それと、他にも開発したいプロダクトやサービスがあり、
スケジュール的にそっちの方も急いで進めないといけないという事実を今日分かったので、かなり急ぎめでPython100本ノックを進めています。(今日だけで20問以上解きました。。すごいのかどうかわからんが)

さて、
「自作Python100本ノック」とはそもそも何ぞや?
どの程度のレベル感なのか?
どのように進めて行くのか?
など気になる方は詳しくはこちらに整理してありますのでまずはそちらを確認するようお願いします。
それでは始めていきます!
    

Q26: リスト問題

問題:
1. "mozzarella","cinderella","salmonella"(「モッツァレラ」「シンデレラ」「サルモネラ菌」)
の3つの文字列を要素としてthingsというリストを作成
2. "mozzarella"の先頭文字を大文字にする
3. "cinderella"を全て大文字にする
4. "salmonella"を大文字にして、逆順にする。

q26.py
#1
things = ["mozzarella","cinderella","salmonella"]

#2
things[0] = things[0].capitalize()
things

#3
things[1] = things[1].upper()
things

#4
things[2] = things[2].upper()
things[2] = things[2][::-1]
things[2] = things[2]

[出典]『入門 Python3』

Q27: 辞書問題

問題:
1. e2fという英仏辞書を作り、それを表示
この辞書にはdogはchien,catはchat,walrusはmourseという情報が入っている。
2. 辞書e2fを使って、walrusという単語に対応するフランス語を表示
3. e2fからf2eという仏英辞書を作成
4. e2fから英単語だけを集合の形で表示せよ
    

q27.py
#1
e2f = {"dog":"chien","cat":"chat","walrus":"mourse"}
e2f

#2
e2f["walrus"]

#3
f2e = {}
for english, french in e2f.items(): #辞書のすべての値を取得するには、items()を使う
    f2e[french] = english
f2e

#4
set(e2f.keys())

[出典]『入門 Python3』

Q28: 多重レベルの辞書問題

問題:
1. lifeという多重レベルの辞書を作る。
"animals","plants","other"という最上位キーがあり、
animalsキーは"cats","octopi","emus"というキーを持つ他の辞書を参照する。
catsキーは"Henri","Grumpy","lucy"という文字列のリストを参照する。
他のキーは空辞書を参照する。
2. lifeの最上位のキーを表示せよ
3. life["animals"]のキーを表示せよ
4. life["animals"]["cats"]の値を表示せよ
    

q28.py
#1
life = {"animals":{
            "cats":["Henri","Grumpy","lucy"],
            "dogs":{},
            "birds":{}},
        "plants":{},
        "other":{}
        }

#2
print(life.keys())

#3
print(life["animals"].keys())

#4
print(life["animals"]["cats"])

[参考]『入門 Python3』

Q29: リスト内包表記を使って、rage(10)の偶数リストを作れ

   

q29.py
even = [number for number in range(50) if number % 2 == 0]
even

[参考]『入門 Python3』

Q30: 辞書内包表記を使って、squaresという辞書を作れ

条件: キーの値は、range(10)を使ってキーを返し、各キーの自乗とする。
   

q30.py
squares = {key: key * key for key in range(50)}
squares

[参考]『入門 Python3』

今日の感想

リスト、辞書といった基本的な部分の問題を入門書から引っ張ってきました。(一部変更)
超基本ですが、capitalize()とかitems()とか忘れてた(?)ので勉強になりました。
あと、内包表記はいつも逃げてきたんですけど、今回習得できたと思うので、これからは逃げないでいけそうな時は使っていこうと思います。
何よりも、かっこいいですし。
これだけで、急に「コード書ける奴感」数段上がりますよね。

本当は、まだまだ解いた問題あるんですがストック無くなると後がなくなるので、ちょっと怖いのでここでセーブして起きます。
しばらくは、『入門 Python3』を参考に問題を解いて行くので、そんなに凝った問題というよりは入門者向けの問題になるかと思いますのでご了承ください。

それでは!

-> 7日目

4
6
0

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
4
6