LoginSignup
0
0

More than 1 year has passed since last update.

Kivy と Python で電卓を作る2:設計

Last updated at Posted at 2023-01-10

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 という計算を行うときは

  1. '12' の入力(文字列A)
  2. 演算子入力
  3. '16' の入力(文字列B)
  4. = の入力(文字列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. 計算関連

  1. input_num (名前変えるかも) で数字を受け取る
  • 最初に数字ボタンが押された時, 元の input_num の数字は削除, それ以外なら追加
  1. 演算子ボタン (+, -, ×, ÷) が押された場合は input_num を数値変換して保持
  2. = が押された時は input_num を数値変換して計算する.
  • 演算子入力がない場合は, 計算を行わない.

これで電卓の基本機能は考えられた(気がする)

3. 次回予告

ボタンの作成と簡単なレイアウトを実装する.
前回:Kivy と Python で電卓を作る1:概要
次回:# Kivy と Python で電卓を作る3:基本部分の作成

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0