電卓プログラムを作ろう5~16個のボタンに個別のテキストを表示するには?~
2024年12月13日(金)は、8割ほどの出席でした。
- 18時00分~18時30分 タイピング練習
- 18時30分~19時00分 Pythonドリル
- 19時00分~19時50分 電卓を例にプログラムの要素を学習
- 19時50分~20時00分 あとかたづけ
Contents
タイピング練習
タイピングの練習は、「寿司打」です。
ひさしぶりに、わたしが自己ベストを更新しました。それでも小学生のトップメンバーには追いつけないとは。うれしいやら、くやしいやら。
Pythonドリル~コーディングの基礎力をつける~
タイピングの次は、好評の「Pythonドリル」です。自分でコーディングする力をつけます。
今回は、論理演算の問題を重点的に出題しました。メンバーみんなはいつもIF文で使っているはずなのに、論理式(条件式)だけを抜き出されるとよくわからない模様です。
実はIF文を深く理解するのに必要な知識なのですが……。入門初級クラスだと、あまり深入りせずサラッと実例だけ示してあることが多いのです。小学生相手に説明するのがいいのかどうか? それはわかりません。ただ、大人も中学生もいるので、難しいことも、やさしいことも混ぜながら進めていきます。
電卓らしくプログラムを作ろう~ボタンを複数配置編~
前回16ボタンを配置できたメンバーはわずかでした。今回は全員が作れるといいなあ。
電卓らしくボタンを配置してテキストを表示する
前回最後のところで書いた、for文を入れ子にする方法で組んでみたのが下のコードです。ボタンはgridで配置しました。
import tkinter
# メインウィンドウを生成する
root = tkinter.Tk()
# ウィンドウのタイトルを設定する
root.title("電卓サンプルプログラム)
# ウィンドウのサイズを設定する
root.geometry("400x600")
#ボタンに表示する文字
button_text = [['C', 'CA', '√', 'BS'],
['7', '8', '9', '÷'],
['4', '5', '6', '×'],
['1', '2', '3', '-'],
['0', '.', '=', '+']]
#ボタンの配置
for i in range(5):
for j in range(4):
button = tkinter.Button(\
root, \
text=button_text[i][j],\
width=10,\
height=5)
button.grid(row=i+1, column=j )
# tkinterのイベントを処理する
root.mainloop()
for文の入れ子が優れいる点は、ボタンの配置が変わったり、数が増えても、iとjの値を変えたらすぐに対応できるところです。あらかじめ変更を見越して、変更しやすいように作っておくのもテクニックです。
わたしも答えを知っているわけではありません。「おそらく、こんなコードになるだろうなあ」というのが頭にあるので、詳細を調べながら、試しながら作っています。
今回の電卓制作シリーズは、「仮説→検証」の手順を踏むことが大きなねらいです。生成AIに聞いて、電卓プログラムができたところで、それはまったく価値がありません。生成AIがまともに使える答えを返さないときでも、自ら答えを導き出せる力を養いたいのです。