All pastes #1417930 Raw Edit

calc

public python v1 · immutable
#1417930 ·published 2009-05-10 02:07 UTC
rendered paste body
#Calcul.pyclass Calcul():     _current = 0    _buffer = 0    _show = 0    _dec = False    _decnum = 1    _last_sign = None    _input = True    def press(self, widget, data):        if self._last_sign == '-':            self.__minus = -1        else:            self.__minus = 1        if self._input != True:            self._current = 0            self._input = True            __minus = 1        if ~self._dec :            self._current = float(self._current*10+self.__minus*data)        else :            self._current = float(self._current+self.__minus*data/self._decnum*10)            self._decnum=+1        self._show = self._current        print("current:", self._current, "buffer:", self._buffer,\                  "show:", self._show, "last sign:", self._last_sign)    def clear(self, widget):        self._current = 0        self._buffer = 0        self._show = 0        self._dec = False        self._decnum = 1        self._last_sign = None        self._input = True        print("current:", self._current, "buffer:", self._buffer,\                  "show:", self._show, "last sign:", self._last_sign)    def back(self, widget):        self._current = float(str(self._current)[:-1])        print("current:", self._current, "buffer:", self._buffer,\                  "show:", self._show, "last sign:", self._last_sign)    def dot(self, widget):        if self._decnum == 1:            self._dec = True        def plus(self, widget):        if self._last_sign in ('+', '-', '*', '/', None):            self.equals(widget)        self._input = False        self._last_sign = '+'        print("current:", self._current, "buffer:", self._buffer,\                  "show:", self._show, "last sign:", self._last_sign)    def minus(self, widget):        if self._last_sign in ('+', '-', '*', '/', None):            self.equals(widget)        self._input = False        self._last_sign = '-'        print("current:", self._current, "buffer:", self._buffer,\                  "show:", self._show, "last sign:", self._last_sign)    def multiply(self, widget):        if self._last_sign in ('+', '-', '*', '/', None):            self.equals(widget)        self._input = False        self._last_sign = '*'        print("current:", self._current, "buffer:", self._buffer,\                  "show:", self._show, "last sign:", self._last_sign)    def divide(self, widget):        if self._last_sign in ('+', '-', '*', '/', None):            self.equals(widget)        self._input = False        self._last_sign = '/'        print("current:", self._current, "buffer:", self._buffer,\                  "show:", self._show, "last sign:", self._last_sign)    def equals(self, widget):        if self._last_sign == None:            self._buffer = self._current        elif self._last_sign in ('+', '+='):            self._buffer = self._buffer + self._current            self._last_sign = '+='        elif self._last_sign in ('-', '-='):            self._buffer = self._buffer + self._current            self._last_sign = '-='        elif self._last_sign in ('*' '*='):            self._buffer = self._buffer * self._current            self._last_sign = '*='        elif self._last_sign in ('/', '/='):            self._buffer = self._buffer / self._current            self._last_sign = '/='        self._show = self._buffer        self._input = False        print("current:", self._current, "buffer:", self._buffer,\                  "show:", self._show, "last sign:", self._last_sign)