現在、電卓にいろいろな機能を追加しようとしている最中です。
Cボタンなんですが、例えば1 + 4 c とボタンを押すとちゃんと1 + となり4が消えるのですが、
1 2 3 c とボタンを押すと全部消えてしまいます。
よろしくお願いします。
環境:Windows10, Python3.8.5
参考: https://blog.narito.ninja/detail/10
https://kagakunomemocho.com/python-calc/
Python
1 2 def calc(self, event): 3 #押されたウィジェットのテキスト部分を表示 4 char = event.widget['text'] 5 6 #最後に押したボタンの内容 7 last = self.exp_list[-1] 8 9 # =ボタンの場合 10 if char == '=': 11 if last in CALC_SYMBOLS: 12 self.exp_list.pop() 13 exp = eval(''.join(self.exp_list)) 14 self.exp_list = [str(exp)] 15 16 # Cボタンの場合 問題点 17 elif char == 'C': 18 if len(self.exp_list) == 1: 19 self.exp_list = ['0'] 20 else: 21 self.exp_list = self.exp_list[:-1] 22 23 # ACボタン 24 elif char == 'AC': 25 self.exp_list = ['0'] 26 27 28 #各演算記号を押した 29 elif char in CALC_SYMBOLS: 30 if last == char == '/': 31 self.exp_list[-1] += '/' 32 elif last == char == '*': 33 self.exp_list[-1] += '*' 34 elif last in CALC_SYMBOLS: 35 self.exp_list[-1] = char 36 else: 37 self.exp_list.append(char) 38 39 #それ以外、数字を押した 40 else: 41 if last == '0': 42 self.exp_list[-1] = char 43 elif last in CALC_SYMBOLS: 44 self.exp_list.append(char) 45 else: 46 self.exp_list[-1] += char 47 48 #リストに格納している式を文字列にし、画面に反映 49 self.display_var.set( 50 ' '.join(self.exp_list) 51 )
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/14 09:23
退会済みユーザー
2021/05/14 09:35
2021/05/14 23:08