スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

6歳からのPython

先日、リリカに"数当てゲーム"を教えました。1から100までの好きな数を思い浮かべてもらって、
「それは50より大きいですか小さいですか?」「それは25より大きいですか小さいですか?」
と質問して、数を当てるやつです。

リリカはこれが妙に気にいったようで、しょっちゅう「数当てゲームしようよ~」とせがむので、鬱陶しくなって"数当てゲームの相手をするプログラム"を書こうとしたのですが、
そこでハタと、「せっかくなので、これを題材にリリカにプログラミングを教えてみよう」と思い立ちました。

問題はどの言語を使うかですが、悩まずPythonにします。シンプルだし、対話モードがあるので入門にはうってつけかと。日本語の情報が少ないので、初心者の独習には向きませんが…

とりあえず対話モードで、簡単な計算やprintの使い方を教えてみたところ、理解したようです。「5たす2 の答えをプリントする」というような課題も何とかクリア。

次にwhileループについて説明しましたが、やはり難しかったようですね。まずは”特定の文字列を10回プリントする”を説明して、次に「1から10まで足した答えをプリントする」というお題を出しましたが、説明したら”わかった”というけれど、応用問題を出しても解けないので、わかってないようです。6歳ではこのあたりが限界なのか。

a = 0
b = 0
while a < 10:
    a += 1
    b += a
print `b`

変数の概念については一応わかったようだけれど、大少を比較してループを抜ける、という動作がわからないみたいで。上から下に順番に実行するのはわかりやすいけれど、プログラムがループするというのは抽象的な概念なのかもしれません。もっと説明を工夫すればなんとかなったのかな。まぁ気が向いたら再挑戦してみます。

ちなみに、数当てゲームのコードはこんな感じで、プログラミングとしては初歩の初歩だけど、これが分かればコンピュータプログラミングの概念を理解したことになるはずです。リリカが分かるのはいつのことか。

import math
min = 1
max = input("いくつまでの数を当てますか?")
riron = int(math.log(max, 2))+1   #おまけ・最大回数の理論値を計算しておく
answer = ""
count = 0
while answer != "y":
    center = (max - min) /2 + min
    answer = raw_input(`center` + "ですか?( 正しい:y 大きい:b 小さい:s )")
    if answer == "b":
        min = center + 1
    if answer == "s":
        max = center - 1
    if answer == "y" or answer == "b" or answer == "s":
        count += 1
print "こたえは" + `center` + "です。" + `count` + "回で当てました。(*^ー゜)v"
if count > riron:
    print "でも" + `riron` + "回以内に当たるはずです。なにか間違えてますよ。( ´Д`)"

関連記事

コメントの投稿

非公開コメント

○○歳の私にも、全く意味不明・・・。
何歳になったら理解できるようになるのかなぁ???

ぼくはもうすぐわかるようになるかな。
あと3年くらいで・・・・・・・

あしやのパパパパさん☆
明日からスイスですねーー☆
お土産の○ョ○○ー○を楽しみにしています!!
気をつけて行ってらしてくださいねーーー。
カテゴリ
最新記事
最新コメント
最新トラックバック
月別アーカイブ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。