応用を実践するにあたって、あるいは今後、プログラミングを進めていくうえで、知っておいて欲しい
ことがあるのでこれをお伝えします。
ヒントを活用しよう
PSNで提供する練習問題やカスタマイズ問題にはヒントが付いている場合があります。
ヒントは最初、次のように内容が見てない状態となっています。
「ヒントを見る」をクリックすることによってヒントが見れるようになっているので、見たいときはここをクリックしてください。
試しに、上記の「ヒントを見る」をクリックしてみてください。
悩みすぎる前にヒントを見て考えてみてください。
それでもわからない場合はいつでも何でも僕に質問するようにしてください。
とにかく悩んで止まってしまわないようにしましょう。
正解はひとつじゃない
プログラミングの正解はひとつではありません。
書き方、ロジックの組み方など、いろいろアレンジてきます。
例えば、1~10のうち偶数を出力したい場合、以下のどのような書き方でも実装することができます。
コード1
for i in range(1, 11): if i % 2 == 0: print(i)
コード2
for i in range(2, 11, 2): print(i)
コード3
i = 1 while i <= 10: if i % 2 == 1: print(i + 1) i = i + 1
要は正しいアウトプットができればそれが正解です。
だから、自分のやりやすい方法で進めて大丈夫てす。
完璧に理解する必要はない
既にあるコードをカスタマイズする場合や他の人が書いたコードを参考にする場合など、全てのコードを完璧に理解する必要は必ずしもありません。
僕も処理の内容を理解しないまま、他人の書いたコードをコピペして使っていることもよくあります。
要は、何をインプットしたら、どのようなアウトプットがあるかということを把握してれば大丈夫です。
例えば、以下は応用の「サジェストキーワードの取得」で使用しているコードです。
key = 'ipad' slist = [] for ch in chrs: r = requests.get(url + urllib.parse.quote_plus( key + ' ' + ch)) if r.status_code == 200: buf = r.json() suggests = buf[1] slist.extend([suggests]) sleep(random.uniform(0.5,1.0))
これは、URLにキーワードを含めて指定すると、そのサジェストキーワードをリストに返すということです。
途中で、「json」という関数を使ったり、リストの2次元配列を使ったりしていますが、そんなことは、必ずしも完璧に理解しなくても大丈夫です。
ここでは、「どういったURLを指定したら、どのようなリストが返ってくるか」というところだけ分かれば十分だったりします。
もしかしたら、ちょっともやもや感じでしまうかもしれません。
ただ、よく使うprint関数だって同じです。
print関数も内部的にはめちゃめちゃ複雑な処理をしています。
でも、「print関数に値を指定したら、それを表示してくれる」というインプットとアウトプットを理解していれば十分に使いこなせます。
もちろん勉強のために理解するの事は大切です。
ただ、実際にツールを作り始めたら、効率的に作業することも大切で、それには割り切ることも必要になってきます。
なので、プログラミングでは必ずしも全てを理解しなくても大丈夫ということも覚えておいてください。