0
0 Комментариев

Есть код на Kivy:

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.widget import Widget
from kivy.config import Config
from kivy.uix.label import Label
 
Config.set('graphics','resizable','0')
Config.set('graphics','width','400')
Config.set('graphics','height','450')
 
 
class Calculator(App):
    def calculat_e(self,instance):
        self.lbl.text = str(eval(self.lbl.text))
        self.formula = ''
 
    def update_label(self):
            if self.formula != '+' and self.formula != '*' and self.formula != '-' and self.formula != '.' :
                # if '*' in mas:
                self.lbl.text  = self.formula
 
    def add_number(self,instance):
        if self.formula == '0' :
            self.formula = ''
        if self.formula == '+':
            self.formula = ''
        if self.formula == '-':
            self.formula = ''
        if self.formula == '*':
            self.formula = ''
        if self.formula == '.':
            self.formula = ''
        # if self.lbl.text[len(self.lbl.text)-1] != '**':
        if len(self.lbl.text) != 13:
            self.formula += str(instance.text)
            self.update_label()
 
    def clear_(self,instance):
        self.lbl.text = '0'
        self.formula = ''
 
    def build(self):
 
        self.formula = "0"
 
        bl = BoxLayout(orientation='vertical')
        gl = GridLayout(cols=4,spacing=3,padding=[10])
        self.lbl = (Label(text='0',font_size= 50,size_hint=[1,.35],text_size=(400-20,450 * .35 -20 ),halign='right',valign='center'))
        bl.add_widget(self.lbl)
        gl.add_widget(Button(text='7',on_press= self.add_number))
        gl.add_widget(Button(text='8',on_press= self.add_number))
        gl.add_widget(Button(text='9',on_press= self.add_number))
        gl.add_widget(Button(text='*',background_color=[0,0,1,1],on_press= self.add_number))
        gl.add_widget(Button(text='4',on_press= self.add_number))
        gl.add_widget(Button(text='5',on_press= self.add_number))
        gl.add_widget(Button(text='6',on_press= self.add_number))
        gl.add_widget(Button(text='-',background_color=[0,0,1,1],on_press= self.add_number))
 
        gl.add_widget(Button(text='1',on_press= self.add_number))
        gl.add_widget(Button(text='2',on_press= self.add_number))
        gl.add_widget(Button(text='3',on_press= self.add_number))
        gl.add_widget(Button(text='+',background_color=[0,0,1,1],on_press= self.add_number))
        gl.add_widget(Button(text='C',on_press=self.clear_,background_color=[0,1,1,1]))
        gl.add_widget(Button(text='0',on_press= self.add_number))
        gl.add_widget(Button(text='.',on_press= self.add_number))
        gl.add_widget(Button(text='=',background_color=[0,0,1,1],on_press = self.calculat_e))
 
        bl.add_widget(gl)
        return bl
 
Calculator().run()

Это мой первый калькулятор на Kivy.Но никак не могу придумать как запретить ввод одинаковых знаков (+,-,*), т.е,чтобы не было 4+++++++4 или 3…………..5,уже 2 день мучаюсь,подскажите кто знает.Желательно не меняя этот код — просто добавляя новый

Используется Python 3.5


Добавить комментарий