Kivy と Python で電卓(ダサい)を作る:方針
前回に続き, 実装方針を考える.
人は Kivy で電卓を作りたがる修正があるらしく, 他にも数件の記事を見かけた.
見直してみるとそれぞれに違って面白い.
目次
Kivy と Python で電卓を作る:概要
Kivy と Python で電卓を作る:方針 ←イマココ
Kivy と Python で電卓を作る:基本部分の作成
Kivy と Python で電卓を作る:電卓機能の追加
2. 基本的な方針
2-1. 数値入力の受け取り
入力を文字列として保存, 計算前に数値に変換し計算を基本方針とする.
1 の入力
input_num.append('1')
2 の入力
input_num.append('2')
例えば, 12 + 16 = 28 という計算を行うときは
- '12' の入力(文字列A)
- 演算子入力
- '16' の入力(文字列B)
- = の入力(文字列A, B を数値に変換し計算結果を表示)
のような流れで計算が進んでゆく.
数値で入力を受け取っても良いのだけれど,
1 の入力
input_num = 1
2 の入力
input_num = 1 × 10 + 2
少数とか入力の削除とかがあると大変なので...
2-2. 電源の ON, OFF と状態変化
電源の ON, OFF を実装する.
方法自体は何通りかありそうだが, 今回は
from transitions import Machine
で使えるパッケージ 'transitions'を使って実装してみる.
transitions の詳細については
Pythonで状態遷移(transitions) に詳しく書かれている.
2-2-1. 状態変化一覧
- OFF:電源が切れている状態. AC 二回押しで InputNum 状態に遷移
- InputNum:最初の数値入力. AC 二回押しで OFF
正直, 何も transition 使わなくっても良い気が...
2-3. 計算関連
- input_num (名前変えるかも) で数字を受け取る
- 最初に数字ボタンが押された時, 元の input_num の数字は削除, それ以外なら追加
- 演算子ボタン (+, -, ×, ÷) が押された場合は input_num を数値変換して保持
- = が押された時は input_num を数値変換して計算する.
- 演算子入力がない場合は, 計算を行わない.
これで電卓の基本機能は考えられた(気がする)
3. 次回予告
ボタンの作成と簡単なレイアウトを実装する.
前回:Kivy と Python で電卓を作る1:概要
次回:# Kivy と Python で電卓を作る3:基本部分の作成