リストとfor文は大変相性が良いのです
1月23日(金)は、9割ほどの出席でした。
- 18時00分~18時30分 タイピング練習
- 18時30分~19時50分 Pythonドリル
- 19時50分~20時00分 あとかたづけ
タイピング練習
タイピングの練習は、「寿司打」です。
スコア10,000を超えたメンバーが、もう一人! 素晴らしいと思います。タイピングは、まじめにやれば必ず成長します。まじめに取り組まないと、いつまでも成長しません。
さて、形に残る検定を受けたいとの声がありました。履歴書にかけるような検定を、光都ICTクラブとして受けてみようと計画しています。
Pythonドリル~コーディングの基礎力をつける~
今日のドリルは、リストとfor分です。まずはリストから。
リスト a=[2, 3, 5, 8]を以下のように出力してください。
>2358
リストに対する理解と、print関数の使い方がミソです。
答えは、下のとおり。
a = [2, 3, 5, 8]
for b in a:
print(b, end='')
a = [2, 3, 5, 8]
for i in range(len(a)):
print(a[i], end='')
a = [2, 3, 5, 8]
b = ''
for x in a:
b += str(x)
print(b)
以上3つの答えは、どれも正しい結果を返します。ans1-1.pyがPythonらしいコードです。いわゆるパイソニックなコードです。
わたしが深く考えずに素直に書いたコードは、ans1-2.pyです。比較的古い言語のクセが抜けきれない書き方です。
そして、ans1-3.pyは発送をガラッと変えた書き方です。ans1-1.pyとans1-2.pyは、printのパラメータ設定にたどり着かないと書けませんが、ans1-3.pyならprintのパラメータを知らなくても書けます。
まずは一つ自力で書けるようになることが目標です。できたら、次は他の方法で書けないか試してみましょう。正解は一つとは限りません。
九九をリストで作って表示する
次のお題はこちら。
九九の2の段をリストに入力して、下のように表示しなさい。
>[2, 4, 6, 8, 10, 12, 14, 16, 18]
リストのappendを使うのが新しいところです。あとはここまでの知識でできそうです。
回答例はこちらです。
kuku2 = []
for i in range(1, 10):
kuku2.append(i * 2)
print(kuku2)
rangeの使い方は、これまで何回もやってきているので知っているはず。細かいところは忘れても、調べればすぐに出てくるはず。
これがなかなか出てこないのです。残念。
今回わたしはサブとしてメンバーを見て回りました。メインのときには見えていない、メンバーの「苦手」が見えました。引き続きフォローしていきます。
ところで、ここまで共通してリストとfor文が何回も出てきました。そうなのです。リストとfor文は相性がいいのです。例題をつかって、使い方を覚えてしまうとあとあと楽です。
なお、Pythonにはリスト内包表記という書き方があります。それは、下のように書きます。
kuku2 = [i * 2 for i in range(1, 10)]
print(kuku2)
なんと、ans2-1.pyの1行目から3行目までが1行で書けるというすぐれものです。
単に1行で書けるだけでなく、処理速度も速いのです。覚えておいて損はありません。
とはいえ、わたしもこの表記になれるのは時間がかかりました。おいおい慣れていこうと思います。
このあと、二次元リストも取り組んだのですが、まだメンバーには難しかったようです。これもおいおい取り組んでいきます。