リストと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行で書けるだけでなく、処理速度も速いのです。覚えておいて損はありません。

とはいえ、わたしもこの表記になれるのは時間がかかりました。おいおい慣れていこうと思います。

このあと、二次元リストも取り組んだのですが、まだメンバーには難しかったようです。これもおいおい取り組んでいきます。