Guest User

Untitled

a guest
Apr 30th, 2020
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.42 KB | None | 0 0
  1. ##Имопртируемые модули
  2. from tkinter import *
  3. import math
  4.  
  5. ##Окно калькулятора
  6. tk = Tk()
  7. tk.title('Простой калькулятор')
  8. tk.resizable(0,0)
  9.  
  10. ##Поле ввода
  11. operator = ''
  12. text = StringVar()
  13. calculator_entry = Entry(tk, font = ('arial', 20, 'bold'), justify = 'right', textvariable = text, width = 32, bd = 3)
  14. calculator_entry.grid(row = 0, column = 0, columnspan = 6)
  15. calculator_entry.insert(0, '0')
  16.  
  17. ##Логика калькулятора
  18. def btnClick(numbers):
  19.     global operator
  20.     if text == 0:
  21.         operator = ''
  22.     operator = operator + str(numbers)
  23.     text.set(operator)
  24. def btnClear():
  25.     global operator
  26.     operator = ''
  27.     text.set('0')
  28. def btnEquals():
  29.     try:
  30.         global operator
  31.         sumup = str(eval(operator))
  32.         text.set(sumup)
  33.         operator = sumup
  34.     except:
  35.         text.set('Ошибка!')
  36.  
  37. ##Кнопки калькулятора
  38. btn7 = Button(tk, text = '7', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(7)).grid(column = 0, row = 1)
  39. btn8 = Button(tk, text = '8', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(8)).grid(column = 1, row = 1)
  40. btn9 = Button(tk, text = '9', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(9)).grid(column = 2, row = 1)
  41. btnplus = Button(tk, text = '+', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('+')).grid(column = 3, row = 1)
  42. btndegree = Button(tk, text = 'x²', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('x²')).grid(column = 4, row = 1)
  43. btnplusandminus = Button(tk, text = '±', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('±')).grid(column = 5, row = 1)
  44. btn4 = Button(tk, text = '4', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(4)).grid(column = 0, row = 2)
  45. btn5 = Button(tk, text = '5', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(5)).grid(column = 1, row = 2)
  46. btn6 = Button(tk, text = '6', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(6)).grid(column = 2, row = 2)
  47. btnminus = Button(tk, text = '-', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('-')).grid(column = 3, row = 2)
  48. btnradical = Button(tk, text = '√', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('√')).grid(column = 4, row = 2)
  49. btn7percent = Button(tk, text = '%', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('%')).grid(column = 5, row = 2)
  50. btn1 = Button(tk, text = '1', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(1)).grid(column = 0, row = 3)
  51. btn2 = Button(tk, text = '2', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(2)).grid(column = 1, row = 3)
  52. btn3 = Button(tk, text = '3', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(3)).grid(column = 2, row = 3)
  53. btnmultiplication = Button(tk, text = '*', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('*')).grid(column = 3, row = 3)
  54. btnopenbracket = Button(tk, text = '(', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('(')).grid(column = 4, row = 3)
  55. btnbackspace = Button(tk, text = '⌫', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('⌫')).grid(column = 5, row = 3)
  56. btnclear = Button(tk, text = 'C', font = ('arial', 15, 'bold'), width = 6, height = 3, command = btnClear).grid(column = 0, row = 4)
  57. btn0 = Button(tk, text = '0', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(0)).grid(column = 1, row = 4)
  58. btnpoint = Button(tk, text = '.', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('.')).grid(column = 2, row = 4)
  59. btndivision = Button(tk, text = '÷', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('÷')).grid(column = 3, row = 4)         ###    
  60. btnclosebracket = Button(tk, text = ')', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(')')).grid(column = 4, row = 4)
  61. btneval = Button(tk, text = '=', font = ('arial', 15, 'bold'), width = 6, height = 3, command = btnEquals).grid(column = 5, row = 4)
  62.  
  63. ##Цикл обработки событий
  64. tk.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment