« 珍しく右脚の裏側がプチ痙攣、治らないまま7kmジョグ&つぶやき | トップページ | 東京の抽選結果&天気予報が外れ続き、まだ猛暑ジョグ・ウォークの苦行・・ »

Python(パイソン)入門4~ランダムなサイコロの目の予想、数値データのリストの処理(ChatGPT4oも使用)

書こう書こうと思いつつ、ずるずると引き延ばしてたプログラミング入門記事。半年ぶりくらいかと思ったら、既に1年ぶりになってて、オンライン環境のサイト「Bit Arrow」(ビットアロー)のサーバーの移行が進んでた。

    

240920a

   

面倒だから、古いサーバーのまま使おうとしたら、「移行をお願いいたします」と表示されたから、仕方なく新しいサーバーへ。

  

240920b

    

ところが、元のアカウント設定だとダメだったから、新たにアカウント登録し直して、ようやくスタート。ちなみに、元のメールアドレスはそのまま使えたから、パスワードを変更しただけ。

   

これが、東京マラソンのサイトだと、複雑骨折みたいな状況になってる。昔のアカウントはなぜか登録されてないことになってるのに、昔のメールアドレスは既に使われてるからもうダメとか表示されるのだ。心当たりは一応あるけど、とりあえず原因不明と書いとこう。

  

インスタグラムでも似たような事があった。これらもある意味、プログラミングの話だろう。言語がパイソンかどうかはともかく。

   

   

    ☆   ☆   ☆

では、高校の教科書と参考書(副教材)を使ったPython(パイソン)入門の記事の4本目を書くことにする。といっても、プログラミングの場合、記事を書く前の準備が大変だから、既にかなり疲れてしまった。

   

これまでの3本の記事は、以下の通り。ほとんど、現在の高校の必修科目「情報1」のカリキュラム通りになってる。2年半前から高校の必修。ただ、パイソンその他、特定の言語をどの程度習うのかは授業による。次の共通テストでどんな扱いの導入になるのか、全く未知数で不明。

   

Python(パイソン)入門1~人気プログラミング言語を高校教科書副教材(東京書籍)とオンライン環境Bit Arrowで簡単に

   

Python(パイソン)入門2~高校副教材とオンライン環境Bit Arrow、さらにAI(ChatGPT4)も使用

 

Python(パイソン)入門3~乱数を利用した、じゃんけんゲーム作成など(生成AI・ChatGPT4も使用)

    

    

    ☆   ☆   ☆

前回のじゃんけんで既に、乱数を導入してある。今回は、サイコロを振って目を当てる原始的ゲームのシミュレーション。実際のサイコロと比較するとどうなるのかは試してない。というより、手元にサイコロが無い。最後に使ったのは小学6年かも。

   

240920c

   

最初に「import random」と入力して、乱数を発生させる関数random.randintの準備。「deme」(出目)だと出目金みたいだから,私は「detame」(出た目)に変更。

    

input関数で入力させた予想数字を、int関数で数に直す。数字という「文字列」と「数」が違うというのが、どうもやりにくい。

   

240920d

    

とにかく、yosou(予想)を2と入力。出た目は5だから、ハズレ。当たりとハズレをはっきり表示させるなら、以下の通り。ちなみに、プログラムは基本的に,元のテキストと少し変えて作成。勉強のためでもあるし、好みの違いもある。

   

240920e

240920f

   

   

    ☆   ☆   ☆

続いて、連続3回の繰り返しの後、当たりが何回でハズレが何回かを表示するプログラム。当たる度に、変数のatariが0から一つずつ増えて行く。ハズレも同様。

   

240920g

  

240920h

    

上の場合、実行結果が8行で、つながったままだと読みにくい。1行空けはどうやるのか、ChatGPT4oに質問すると、print() と加えればいいとのこと。

   

ただ、なぜかこの入力は、その前後あたりがエラー扱いになってしまうことが多い。原因は不明で、どうやって直したのかも不明。一度、削除した後、前後も含めて入力し直すと直ることが多かった気がする。

    

   

     ☆   ☆   ☆

では、上のプログラムを、ChatGPT4oに書かせるとどうなるのか。やっぱり、遥かによく出来たプログラムを即答して来た。

  

240920p

    

240924q

   

240924r

    

   

「効率的に」と自分で書いてるけど、むしろ、より配慮されたプログラムと言うべきだろう。範囲外の数を入力した場合や、数以外を入力した場合の警告文まで入ってるし、所々に人間用の説明文が入ってるから、プログラムを見る人にとっては分かりやすい。

   

ただ、実はこれをそのままビットアローに入力すると、またエラーがあちこち出てしまった。原因が分かるかとAIにたずねると、たぶんバージョンの違いだろうと応答。古いバージョン用の書き方を教えてくれたから、それを使ってみると、確かに成功した。AIの実力、恐るべし。。

    

   

     ☆   ☆   ☆

乱数の単元は終了して、次は第3章・複数データの処理。普段はエクセルとか、表計算ソフト・アプリにやらせてる内容。

   

240920i

    

リストはlistではなく、ary。全国の高校教師の数%が、授業で「アリィ?」とか言って、生徒の冷たい視線を浴びてるはず♪ arrayという英単語を略した記号だろうと想像。リストの1番目を、ary[0]と書くのも分かりにくい。何番目かを表す「添え字」の番号は、2番目なら1、3番目なら2。一つずつ、ズレてるから間違えやすい。

       

240920j

    

5コの数のリストを定義(代入)して、それらを表示させるプログラムは、上の通り。実行結果は下の通り。「0番目」の数から並ぶことになる。

   

240920k

   

    

     ☆   ☆   ☆

240920l

  

続いて、リストをそのまま表示して、数字の足し算(和、sum)を表示させるプログラム。[ ]を用いたリスト自体の表示は分かりやすい。sum=0からスタートして、数を一つずつ足して行く操作を5回繰り返す。

     

240920m

    

    

そして最後は、リストの中で最大の数(max)を表示させるプログラム。最初は、0番目の数をmaxとして、もし、その後の数の方が大きかったら順に入れ替えて行く。もし、大きくなかったら、という場合の処理は省略されてる。

  

240920n

    

240920o

    

というわけで、この程度でも膨大な手間ヒマがかかってしまったから、今日はそろそろこの辺で。。☆彡

    

    (計 2364字)

| |

« 珍しく右脚の裏側がプチ痙攣、治らないまま7kmジョグ&つぶやき | トップページ | 東京の抽選結果&天気予報が外れ続き、まだ猛暑ジョグ・ウォークの苦行・・ »

数学」カテゴリの記事

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 珍しく右脚の裏側がプチ痙攣、治らないまま7kmジョグ&つぶやき | トップページ | 東京の抽選結果&天気予報が外れ続き、まだ猛暑ジョグ・ウォークの苦行・・ »