Kalkulator naukowy

Stronę tą wyświetlono już: 334 razy

Jedną z najprostszych rzeczy jakie można napisać w Pythonie jest kalkulator naukowy, toteż i z najdzikszą wręcz rozkoszą postanowiłem sobie napisać takowy program. Do zrealizowanie tego projektu wykorzystałem bibliotekę tkinter. Oto jego kod:

Listing 1
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import tkinter as tk
  4. from math import *
  5. exp = 0
  6. def main():
  7. def b_calculate_command():
  8. equation = e_equation.get()
  9. errortext = ""
  10. global exp
  11. try:
  12. exp = eval(equation)
  13. except ZeroDivisionError as e:
  14. errortext = 'Dzielisz przez zero ({0})'.format(e)
  15. except NameError as e:
  16. errortext = 'Nieznana zmienna ({0})'.format(e)
  17. except TypeError as e:
  18. errortext = 'Błąd typu danych lub deklaracji zmiennej ({0})'.format(e)
  19. except:
  20. errortext = 'Błąd składni'
  21. e_calculate.delete(0, tk.END)
  22. if len(errortext):
  23. e_calculate.insert(0, "{equation}={errortext}".format(equation = equation, errortext = errortext))
  24. t_calculate.insert(1.0, "{equation}={errortext}n".format(equation = equation, errortext = errortext))
  25. else:
  26. e_calculate.insert(0, "{equation}={exp}".format(equation = equation, exp = exp))
  27. t_calculate.insert(1.0, "{equation}={exp}n".format(equation = equation, exp = exp))
  28. window = tk.Tk()
  29. window.anchor(tk.NW)
  30. window.title("Kalkulator")
  31. l_desc = tk.Label(window, text = "Podaj wyrażenie do obliczenia:", foreground = "#ff0000", anchor = tk.NW, width = 70)
  32. l_desc.pack(anchor = tk.NW)
  33. e_equation = tk.Entry(window, width = 71)
  34. e_equation.pack(anchor = tk.NW)
  35. b_calculate = tk.Button(window, text = "Oblicz", command = b_calculate_command, anchor = tk.CENTER, width= 68)
  36. b_calculate.pack(anchor = tk.NW)
  37. e_calculate = tk.Entry(window, width = 71)
  38. e_calculate.pack(anchor = tk.NW)
  39. t_calculate = tk.Text(window, width = 81)
  40. t_calculate.pack(anchor = tk.NW)
  41. window.mainloop()
  42. return 0
  43. if __name__ == '__main__':
  44. main()

Poniżej zamieszczam screen programu.

Python - program kalkulator
Rys. 1
Screen programu kalkulator napisanego w Pythonie 3+

Komentarze