Guest User

Python calculator

a guest
Mar 31st, 2015
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.40 KB | None | 0 0
  1. from tkinter import *
  2.  
  3. def click(key):
  4.     if key == "=":
  5.         try:
  6.             result = str(eval(display.get()))[0:10]
  7.             display.insert(END, " = " + result)
  8.         except:
  9.             display.insert(END, " --> error")
  10.  
  11.     elif key == "C":
  12.         display.delete(0, END)
  13.  
  14.     else:
  15.         display.insert(END, key)
  16. window = Tk()
  17. window.title("calculator")
  18.  
  19. # top_row frame
  20. top_row = Frame(window)
  21. top_row.grid(row=0, column=0, columnspan=2, sticky=N)
  22.  
  23. # editable display
  24. display = Entry(top_row, width=45, bg="cyan")
  25. display.grid()
  26.  
  27. # num_pad frame
  28. num_pad = Frame(window)
  29. num_pad.grid(row=1, column=0, sticky=W)
  30.  
  31. num_pad_list = [
  32. '7',  '8',  '9',
  33. '4',  '5',  '6',
  34. '1',  '2',  '3',
  35. '0',  '.',  '=' ]
  36.  
  37. # num_pad buttons
  38. r = 1
  39. c = 0
  40. for btn_text in num_pad_list:
  41.     def cmd(x=btn_text):
  42.         click(x)
  43.     Button(num_pad, text=btn_text, width=5, command=cmd).grid(row=r,column=c)
  44.     c = c+1
  45.     if c > 2:
  46.         c = 0
  47.         r = r+1
  48.  
  49. # operator_frame
  50. operator = Frame(window)
  51. operator.grid(row=1, column=1, sticky=E)
  52.  
  53. operator_list = [
  54. '*', '/',  
  55. '+', '-',
  56. '(', ')',
  57. 'C' ]
  58.  
  59. # operator buttons
  60. r = 2
  61. c = 0
  62. for btn_text in operator_list:
  63.     def cmd(x=btn_text):
  64.         click(x)
  65.     Button(operator, text=btn_text, width=5, command=cmd).grid(row=r,column=c)
  66.     c = c+1
  67.     if c > 1:
  68.         c = 0
  69.         r = r+1
  70.  
  71.  
  72. ## Run
  73. window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment